当前位置:  开发笔记 > 编程语言 > 正文

应用程序终止时推送通知

如何解决《应用程序终止时推送通知》经验,为你挑选了0个好方法。

如果应用程序在后台和/或应用程序位于前台,我的应用程序可以正常使用推送通知.

我遇到的问题是如果应用程序被终止(我强制双击主页按钮,找到应用程序,然后向上滑动).

我正在使用ios 9和swift 2.

在app delegate中,didFinishLaunchingWithOptions,我这样做:

let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil)

application.registerUserNotificationSettings(settings)

application.registerForRemoteNotifications()

然后:

func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings) {        
        application.registerForRemoteNotifications()
}

其次是didRegisterForRemoteNotificationsWithDeviceToken&didFailToRegisterForRemoteNotificationsWithError.

然后,我使用相对较新的方法:

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {...}

根据文档和这个链接,与旧版本相反,didReceiveRemoteNotification如果应用程序被终止,则会调用此方法(与调用will/doneLaunchingWithOptions相反).

但是,如果有一个推(已收到 - 我可以在屏幕上看到它)并且我终止后启动应用程序,这个方法似乎不会被称为处理推送的代码(只需发布一个通知所以它被相应的ViewController拾取)不会被调用.

我错过了什么?我需要在didFinishLaunchingWithOptions中进行额外的检查吗?别的地方?

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有