我在推送通知后没有收到任何启动选项;这是我的代码,但似乎没有 NSLogs 在调试区域中打印。
UILocalNotification *localNotif =
[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (localNotif) {
NSString *itemName = [localNotif.userInfo objectForKey:@"aps"];
NSLog(@"Custom: %@", itemName);
} else {
NSLog(@"//////////////////////////");
}
当我打开应用程序(通过按推送通知上的 View )时,它会转到 didReceiveRemoteNotification 脚本,我不确定这是否意味着会发生..
感谢您的阅读。
最佳答案
您的应用程序通过多个路径接收推送通知,具体取决于您的应用程序收到通知时的状态。
如果您的应用未启动(甚至没有在后台暂停),则 launchOptions
将包含通知负载(键 UIApplicationLaunchOptionsRemoteNotificationKey
)。
如果它已经在后台运行或暂停,应用程序将通过应用程序委托(delegate)中的 application:didReceiveRemoteNotification:
接收通知。
本地通知的过程相同(application:didFinishLaunchingWithOptions: 和 application:didReceiveLocalNotification:
中的 UIApplicationLaunchOptionsLocalNotificationKey)
关于iPhone 启动选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5456134/