应用程序被杀死时点击推送通知后应用程序崩溃
Posted
技术标签:
【中文标题】应用程序被杀死时点击推送通知后应用程序崩溃【英文标题】:App crashes after push notification is tapped when app is killed 【发布时间】:2018-05-19 16:22:42 【问题描述】:收到远程通知后,我试图在我的 CustomTabBarController 中启动特定的 viewController。但不知何故,当应用被杀死时,应用总是崩溃。
意思是说,杀死应用程序->收到推送通知->点击通知->应用程序启动并崩溃。当我从锁屏点击通知时也会发生这种情况。
当应用程序在后台时我可以执行,但在应用程序被终止时不能执行。到目前为止我的代码:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool
window = UIWindow(frame: UIScreen.main.bounds)
window?.makeKeyAndVisible()
...
if let remoteNotification = launchOptions?[UIApplicationLaunchOptionsKey.remoteNotification] as? NSDictionary
guard let rootViewController = self.window?.rootViewController as? CustomTabBarController else
return true
rootViewController.selectedIndex = 1
return true
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
if application.applicationState == .background || application.applicationState == .inactive
guard let rootViewController = self.window?.rootViewController as? CustomTabBarController else
return
rootViewController.selectedIndex = 1
我已经按照post 检查了launchOptions,但它仍然崩溃。接下来我可以尝试什么?
【问题讨论】:
@matt 如何获取日志?当应用程序被杀死时,控制台终止。抱歉,我实际上对此很陌生。 【参考方案1】:评论这两行
// window = UIWindow(frame: UIScreen.main.bounds)
// window?.makeKeyAndVisible()
因为覆盖窗口属性会破坏情节提要的初始化(使 rootVC 为零)并且在 return true
窗口必须有一个之前
【讨论】:
我不使用情节提要。我以编程方式表达我的观点。 抱歉,我刚刚尝试了您的代码,它确实有效。谢谢! 我正在使用 REACT Native。以上是关于应用程序被杀死时点击推送通知后应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章
当 iOS 应用程序被暂停/杀死并且用户点击通知时如何处理 Firebase 推送通知?