我正在尝试在应用程序处于后台或被终止时读取推送消息,并且用户从通知中心点击应用程序图标(有徽章)。
这是场景,
- 我收到一条推送消息。
- 然后我忽略了这条消息。
- 接下来我通过点击带有徽章的图标启动应用程序(不是来自通知中心)
- 它不会调用
didReceiveRemoteNotification:
方法。
根据 iOS 应用程序生命周期,它会didFinishLaunchingWithOptions:
在应用程序启动时运行,并在下次调用applicationWillEnterForeground:
和applicationDidBecomeActive:
方法时运行。我的问题是如何从上述生命周期方法中读取我之前收到并忽略的所有推送消息?
我已经尝试过下面的代码片段didFinishLaunchingWithOptions:
(来自这个答案),但我总是将 null 作为有效负载。
NSDictionary *pushNotificationPayload = [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if(pushNotificationPayload) {
NSLog(@"Payload is not null");
[self application:application didReceiveRemoteNotification:pushNotificationPayload];
}else{
NSLog(@"Payload is null");
}
任何有价值的答案表示赞赏,谢谢。
顺便说一句,我使用 iOS 6