当应用程序终止时,APN 在委托中接收通知数据

Posted

技术标签:

【中文标题】当应用程序终止时,APN 在委托中接收通知数据【英文标题】:APN receive notification data in a delegate when app is terminated 【发布时间】:2016-12-21 08:36:10 【问题描述】:

是否可以在未按下通知的情况下终止应用程序时接收通知数据?

我正在使用

func application( _ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) 

如果应用程序处于前台或后台,它可以正常工作,但如果应用程序终止则没有效果,所以我的问题是如果应用程序终止,是否可以在委托中处理通知数据以及如何处理?

谢谢。

【问题讨论】:

您可能正在寻找后台刷新。前往 RayWenderlich 的 Background Modes Tutorial: Getting Started,也值得一读:tutplus' ios 7 SDK: Working with Background Fetch 我想这会对你有所帮助:***.com/questions/35058870/… 【参考方案1】:

获取通知数据的方式只有以下几种:

    如果您的应用程序已打开并且您收到通知。(它将进入didReceiveRemoteNotification) 如果您的应用程序在后台并且您点击通知以打开应用程序。 如果您的应用已关闭,并且您在设备上收到通知并点击通知,您可以打开该应用。(它将进入didFinishLaunchingWithOptions

如果您不点击通知,应用程序将无法处理它。您只能通过网络服务向您提供未读或未处理的通知来处理旧的通知数据。

【讨论】:

是的,可以理解。谢谢。 您可能想澄清“打开”和“关闭”的含义(运行、前台、活动/运行、前台、非活动/运行、后台/暂停、后台/终止)。如果通知具有正确的标志,即使不与通知交互,您也可以在后台(运行或暂停)的应用中接收通知。

以上是关于当应用程序终止时,APN 在委托中接收通知数据的主要内容,如果未能解决你的问题,请参考以下文章

iOS APN 推送通知 - 设备令牌

远程通知到达时哪个代表首先调用,而我的应用程序处于终止模式(不在后台)

如果通知被禁用,iOS 设备可以接收数据负载吗?

iOS,先强制退出应用,点击接收通知banner后,应用启动失败

仅在应用程序处于后台时隐藏 APN 通知?

APN 未交付到 Ad-Hoc 构建