【发布时间】:2014-04-01 15:18:45
【问题描述】:
我正在开发一个从 Zenpush 服务接收推送通知的应用程序。我设法在 Zenpush 上设置了应用和帐户来发送和接收通知。
当应用程序处于活动状态(打开)并且我收到通知时 - 一切正常。我在application:didReceiveRemoteNotification: 处理这个。
此外,当用户在通知到达时点击通知或从通知中心打开应用程序时,我可以处理通知。
问题是 - 如果应用程序在后台或已终止,我将无法处理通知。
我已经为此苦苦挣扎了一个星期。
我在后台模式中启用了后台获取和远程通知。
在方案中,我检查了“由于后台获取事件而启动”。
根据 Apple 文档和我在 * 上发现的内容,我使用以下方法在后台处理通知:application:didReceiveRemoteNotification:fetchCompletionHandler:。
无论我发送什么通知,都不会调用此方法。我试图通过更改一些数据并尝试 NSLog 来确定这一点。
https://devforums.apple.com/message/873265#873265
我在通知中包含 "content-available": 1。
我还有什么遗漏的吗?或者也许有一种方法可以在应用程序处于后台/终止应用程序激活时接收到的所有通知?
【问题讨论】:
-
当应用程序在 background 中时,您应该能够通过该方法处理通知,而不是在 终止 时(通过向上滑动在应用切换器中)
-
@SantaClaus 我尝试使用您提到的相关问题中的代码。但应用仍然没有对通知做出反应。
-
尝试在您的方案中取消选中“由于后台提取事件而启动”。这是一个调试功能,旨在模拟由于后台提取而启动,但您想使用正常启动进行测试。
标签: ios objective-c ios7 background push-notification