我的应用程序通过推送通知执行无声的后台提取。一切正常,当用户在最后60分钟内打开应用程序或在60分钟内发送推送通知时,从服务器发送的推送通知会像预期的那样触发无声的背景信息--即使设备已被锁定。
然而,当用户在2-3小时内没有打开应用程序,或者在2-3小时内没有发送推送通知时,应用程序就不会收到推送通知。我一直在记录应用程序的活动,我已经确认:
didReceiveRemoteNotification:fetchCompletionHandler:在应用程序委托上没有被调用。
还有几个事实:
我的理解是,iOS应该继续在后台唤醒应用程序,并使其能够处理从推送通知中获取的背景信息--即使是在不活动数小时之后(只要设备处于清醒状态,并且有互联网连接)。
我想知道是否还有其他人经历过这种情况,如果是的话,你是否找到了解决办法。
提前感谢!
发布于 2015-07-29 07:23:10
穿过去
目标>功能>后台模式
打开背景模式
发布于 2015-05-30 10:28:45
没有这样的解决办法。您可以尝试PushKit (iOS VOIP推送通知),它更可靠,但仅限iOS8或从iOS7获得的VOIP持久套接字(更困难)。
苹果并不保证立即交付背景/获取推送通知(包含:content-available=1)。这些通知的目的是让应用程序a chance在运行期间更新其内容,而不是“immediate”,也不是可靠的。
iOS将根据无证、能源相关的情况决定何时交付此通知。
换句话说,只有当iOS决定时,你的应用程序才会被通知,它不会影响电池。从我的观察来看,这取决于很多事情,比如:
我甚至注意到在调试会话(通过Xcode,通过电缆连接)中运行的应用程序之间的区别--通知总是被传递,而当我从Springboard / in发布模式(不同的能量条件)启动app时,它就开始不正常了。
发布于 2015-06-30 12:12:46
[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
[[UIApplication sharedApplication] registerForRemoteNotifications];https://stackoverflow.com/questions/27497262
复制相似问题