【发布时间】:2020-08-20 14:57:41
【问题描述】:
在 iOS 13 中测试,我仍然难以检测应用是从应用图标启动还是从推送通知启动。
我知道我们可以通过以下方式检查启动选项中是否存在通知键:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if (launchOptions != nil) {
// Launched from push notification
NSDictionary *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
}
}
问题是我发现“UIApplicationLaunchOptionsRemoteNotificationKey”甚至在我通过单击通知面板中存在未决通知的应用程序图标启动应用程序时出现(应用程序被强制终止)。只有当我清除面板中的通知,然后通过应用图标启动应用时,“UIApplicationLaunchOptionsRemoteNotificationKey”才不存在。
在这种情况下,无论是从应用程序图标还是通知启动,UIApplicationLaunchOptionsRemoteNotificationKey 仍然是三个,所以我无法区分是应该将应用程序重定向到推送内容还是正常启动。
我听说有些人说如果从通知启动,“didReceiveRemoteNotification”将在“didFinishLaunchingWithOptions”之后调用,但是,在我的情况下,在这两种情况下都不会只调用“didFinishLaunchingWithOptions”。
当应用程序被杀死时,任何人在 iOS 13 中遇到同样的问题?任何帮助将不胜感激,谢谢。
【问题讨论】:
-
更多信息:1)杀死应用程序->接收推送->通过应用程序图标打开应用程序-> UIApplicationLaunchOptionsRemoteNotificationKey 在那里 2)接收推送->杀死应用程序->通过应用程序图标打开应用程序-> UIApplicationLaunchOptionsRemoteNotificationKey 是没有
标签: ios objective-c swift push-notification