我已经实现了静默推送通知,但我注意到了一些奇怪的行为.静默推送通知通过以下方式处理:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
Run Code Online (Sandbox Code Playgroud)
如果设备正在充电(即连接电缆)和/或我的应用程序是前台,则似乎只接收静音推送消息.
如果我断开设备与充电器(或Mac)的连接,则除非应用程序是前台,否则不再接收静音推送通知.
在这两种情况下,我都会得到非静音推送通知.
如果我再次插入USB电缆,那么无论应用程序是前景还是后台,我都会收到预期的行为并收到静音推送通知.
我正在使用UILocalNotification,所以我知道收到了什么.
连接设备一切正常的事实表明我的静音推送通知配置正确,并且应用程序具有在plist中设置的正确背景模式等.
在iPhone 5s,6和iPad 2上都可以重复此行为,所有这些都运行IOS 8或8.1.
还有其他人经历过这个吗?它应该很容易重现.为什么将设备插入充电器的简单行为会改变接收静音推送通知的能力?
iphone background apple-push-notifications ios silent-notification