运行iOS 8.4的iPhone 5没有从推送通知启动到后台但其他设备没有?

时间:2015-11-11 15:00:06

标签: ios apple-push-notifications

我正在为需要在后台运行时能够接收推送通知的客户开发应用。

我设置了所有烦人的证书和其他安全保护程序来运行沙盒ARN,并从多个测试设备收集ARNs令牌:

运行iOS 8.4.1的iPhone 5 运行iOS 9.1的iPhone 6 运行iOS 7.0.4的iPhone 4s

该应用在其info.plist中设置了远程通知UIBackgroundMode,我在通知有效负载中包含content-available密钥。

我还在启动时进行了UIApplication registerForRemoteNotifications调用(或者对iOS 7设备进行了现已弃用的registerForRemoteNotificationTypes方法调用。)

在iPhone 6和4s上,如果应用程序没有按预期运行,发送远程通知会在后台启动应用程序。

但是,在iPhone 5上,如果应用程序未运行,则不会启动该应用程序。

如果我指定了默认的远程通知声音,它会播放。

如果我使用{"alert":1}键/值对发送远程通知,设备会显示远程通知,并点击/滑动通知会启动应用。

我已尝试手动启动应用,以防我强行退出。 (在其他测试设备上强制退出应用程序阻止启动到后台,直到我重新启动设备或再次手动启动应用程序,如Apple的文档中所述。)

其他测试设备按预期运行的事实,以及iPhone 5在请求时播放通知声音,并在请求时显示通知横幅的事实告诉我,我已正确设置了事物。

问题是,为什么iPhone 5不会像其他设备一样进入后台?

1 个答案:

答案 0 :(得分:2)

检查设置中iPhone 5中此应用程序(或所有应用程序)的后台刷新是否已禁用 要从您的代码中检查:[[UIApplication sharedApplication] backgroundRefreshStatus]