应用程序在后台时未收到后台获取远程通知,并且用户未通过推送通知进入

Not receiving background fetch remote notifications while application is backgrounded, and user does not enter through push notification

我的应用程序当前使用 application:didReceiveRemoteNotification:fetchCompletionHandlerapplication:didFinishLaunchingWithOptions: 委托方法来处理后台远程通知。间歇性地,推送通知会出现,我不会收到表明它已调用我的应用程序委托方法的日志。我已经测试了挂起、活动、后台和挂起状态,它们似乎都在正常工作。每 30 次推送中大约有 1 次我收到 'dead' 推送通知。

****注意:这种情况只有在我没有通过触摸推送通知进入时才会发生,而且是不可预测的。**

错误来自 Apple 文档中的 iOS 8 "feature"。如果 iPhone 的蜂窝或 wifi 信号不佳、电池电量不足或未插入充电器,phone 将在锁定屏幕上收到通知,但不会将应用程序启动到暂停状态。因此,如果您不通过滑动通知本身直接进入应用程序,则不会触发 application:didReceiveRemoteNotification:fetchCompletionHandler 等后台事件。

这在测试中被抵消了,因为在调试期间设备总是插入我的开发机器并带有强大的 wifi 信号,所以我永远不会进入不良状态。

这是非常具体的,但如果您的应用严重依赖后台功能的推送通知,则这一点至关重要。