我正在通过后台推送通知观察奇怪的情况。 (注意我的意思是新的iOS7后台推送,当应用程序在后台时,我不是在谈论常规推送。)
如果我使用XCode运行我的应用并将其发送到后台并发送一些后台推送通知,那么它们全部收到(几乎立即)。
但是,如果我通过从设备手动启动应用程序来运行应用程序,并在应用程序处于后台时接收更多推送无,但如果应用程序在应用程序中收到它们在前台)。
这是100%可重复的 - 我可以通过XCode切换回运行,并在后台接收所有推送。切换回手动运行,后台没有接收到任何一个。
有人知道发生了什么事吗?
(我正在通过观察NSLog输出到Organizer的控制台来检查它们是否到达。)
答案 0 :(得分:-1)
编辑:问题似乎是Apple回归错误,请参阅评论。
不是答案为什么,但我的评论太大,无法进入评论部分。
首先,我注意到当你通过Xcode运行它们时,应用程序的后台行为是不同的,所以如果你正在开发和测试任何类型的后台行为,请不要只依赖于通过Xcode运行的测试。确保您正在手动运行应用程序,因为行为存在差异。
其次我看到了类似于你自己的东西 - 这就是开启/关闭wifi会影响我的应用程序接收后台推送的能力:
1)让应用程序在后台运行,关闭wifi并发送推送,很可能应用程序没有得到它
2)让应用程序在后台运行,启用wifi并发送推送,应用程序将获得它
3)让应用程序在前台运行并关闭wifi并发送推送,应用程序将获得它。
我不明白为什么1)应该导致问题 - 如果wifi关闭,推送仍然可以通过应用程序,如3所示。至于为什么wifi打开/关闭对应用程序处于后台时不会传送到应用程序的效果有影响我不知道并怀疑它可能是Apple的错误?