0

如果推送通知已发送到设备,是否可以知道何时启动 iOS 应用程序?(我想访问有效负载以从通知中检索信息)

谢谢,

4

2 回答 2

1

UIApplicationDelegate有一些方法,您可以从中查看是否收到通知

didFinishLaunchingWithOptions如果用户启动了带有通知的应用程序,您可以在 AppDelegate 方法中看到,例如

UILocalNotification *notif =
    [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
    if (localNotif) {
        irLog(@"Recieved Notification");
    }

对于您发布的本地通知,您可以查看此方法

- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif

对于远程通知,您可以查看此方法

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
于 2013-03-07T16:07:44.927 回答
1

你应该在你的代码中添加这样的东西:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary
*)launchOptions {

    NSDictionary *remoteNotif = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];

    //Accept push notification when app is not open
    if (remoteNotif) {      
        [self handleRemoteNotification:application userInfo:remoteNotif];
        return YES;
    }

    return YES;
}

请注意,只有通过点击通知启动应用程序时,您才会收到推送通知有效负载。如果它是通过点击应用程序图标启动的,您将不会获得有效负载。

于 2013-03-07T16:36:16.047 回答