我已经实现了静默推送通知,但我注意到了一些奇怪的行为。静默推送通知通过以下方式处理:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
只有在设备正在充电(即连接电缆)和/或如果我的应用程序在前台时,才会收到无声推送消息。
如果我断开设备与充电器(或 Mac)的连接,则不会再收到静默推送通知,除非应用程序在前台。
在这两种情况下,我通常都会收到非静音推送通知。
如果我再次插入 USB 电缆,那么无论应用程序是前台还是后台,我都会收到预期的行为并收到静默推送通知。
我正在使用 UILocalNotification 所以我知道收到了什么。
在连接的设备上一切正常的事实表明我的静默推送通知配置正确,并且应用程序在 plist 等中设置了正确的背景模式。
这种行为在运行 IOS 8 或 8.1 的 iPhone 5s、6 和 iPad 2 上是可重复的。
Has anyone else experienced this? It should be easy to reproduce. Why should the simple act of plugging a device into a charger change the ability to receive silent push notifications?