在后台iOS中接收推送通知

时间:2014-04-01 15:18:46

标签: ios objective-c ios7 background push-notification

我正在开发一款接收Zenpush服务推送通知的应用。我设法在Zenpush上设置应用和帐户以发送和接收通知。

当应用程序处于活动状态(已打开)并且我收到通知时 - 一切正常。我在application:didReceiveRemoteNotification:处理此问题。

此外,我可以在用户到达时点击通知,或者从通知中心打开应用程序时处理通知。

问题是 - 如果应用程序在后台或终止,我无法处理通知。 我一直在努力解决这个问题一个星期了。 我在后台模式中启用了后台提取远程通知。 在Scheme I中选中了“由于后台获取事件而启动”。 根据Apple文档和我在StackOverflow上发现的内容,我使用以下方法在后台处理通知:application:didReceiveRemoteNotification:fetchCompletionHandler:

无论我在通知中发送什么,都不会调用此方法。我试图通过更改某些数据并尝试NSLog来确定这一点。

https://devforums.apple.com/message/873265#873265

我在通知中包含“content-available”:1。

还有什么我想念的吗?或者也许有一种方法可以在应用程序处于后台/终止应用程序变为活动状态时获取接收方的所有通知?

1 个答案:

答案 0 :(得分:1)

Stil无法让应用程序调用{​​{1}} 我决定调试从Zenpush收到的确切内容。 事实证明,使用自定义有效负载部分添加application:didReceiveRemoteNotification:fetchCompletionHandler:并不是正确的方法。 这种方式content-availablecontent-available对象之后添加,而不是在其中。

我写了Zenpush对它的支持,如果我得到有关如何在asp内发送content-available的任何信息,我将编辑此答案

更新

我得到了Zenpush支持的回应。此功能现已测试,即将推出。

更新2:

Zenpush为后台服务添加了一个复选框,现在它的工作正常。 enter image description here