IOS9推送省电模式 - 未调用didReceiveRemoteNotification

时间:2015-10-15 09:05:00

标签: sdk push ios9 mode battery-saver

在IOS9上,如果iPhone处于省电模式,则回叫

application:didReceiveRemoteNotification:fetchCompletionHandler: 

未被调用。相反,我在控制台中收到以下警告

High Priority Push: com.your-company.app - Battery Saver Mode Enabled

使用PushKit时似乎确实有用。

是否有其他人遇到此行为?

还有其他解决方法吗?

1 个答案:

答案 0 :(得分:2)

不幸的是,我相信这是预期的行为。有关推送通知的文档不断对冲其可靠性。 E.g:

https://developer.apple.com/library/mac/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html

  

重要提示:发送通知是“尽力而为”,而不是   保证。它不是为了向您的应用提供数据,而只是为了   通知用户有可用的新数据

在很多条件下,通知将无法传递或传递将被延迟,有时Apple会合并多个通知,并且只会传送最后一个通知。

PushKit是需要VOIP功能的应用程序的更可靠的替代品,其中使用通知来响铃用户以获得更好的可靠性。这就是为什么它仍然在电池节省模式下工作。

就解决方法而言,它实际上取决于您要完成的任务。一种可能性是您可以在应用程序运行时安排本地通知,这些通知比标准远程通知更可靠。