首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS背景推送在2-3小时不活动后未收到通知

iOS背景推送在2-3小时不活动后未收到通知
EN

Stack Overflow用户
提问于 2014-12-16 03:56:00
回答 4查看 2.2K关注 0票数 18

我的应用程序通过推送通知执行无声的后台提取。一切正常,当用户在最后60分钟内打开应用程序或在60分钟内发送推送通知时,从服务器发送的推送通知会像预期的那样触发无声的背景信息--即使设备已被锁定。

然而,当用户在2-3小时内没有打开应用程序,或者在2-3小时内没有发送推送通知时,应用程序就不会收到推送通知。我一直在记录应用程序的活动,我已经确认:

代码语言:javascript
复制
didReceiveRemoteNotification:fetchCompletionHandler:

在应用程序委托上没有被调用。

还有几个事实:

  1. 在应用程序的plist.info中,我将UIRequiresPersistentWiFi设置为true,将UIBackgroundModes设置为(仅)远程通知。
  2. 推送通知有效负载只包含内容可用的键。
  3. 经过2-3小时的不活动(不发送推送通知或没有用户活动),我在我的iPhone 5和仅Wifi的iPad 2上都看到了相同的结果,它们都在运行iOS 8.1.2。换句话说,互联网连接是蜂窝连接还是Wifi并不重要。
  4. 我不相信我达到了速率限制界限,因为我只发送最多1-2推通知每个设备每小时。

我的理解是,iOS应该继续在后台唤醒应用程序,并使其能够处理从推送通知中获取的背景信息--即使是在不活动数小时之后(只要设备处于清醒状态,并且有互联网连接)。

我想知道是否还有其他人经历过这种情况,如果是的话,你是否找到了解决办法。

提前感谢!

EN

回答 4

Stack Overflow用户

发布于 2015-07-29 07:23:10

穿过去

目标>功能>后台模式

打开背景模式

票数 1
EN

Stack Overflow用户

发布于 2015-05-30 10:28:45

没有这样的解决办法。您可以尝试PushKit (iOS VOIP推送通知),它更可靠,但仅限iOS8或从iOS7获得的VOIP持久套接字(更困难)。

苹果并不保证立即交付背景/获取推送通知(包含:content-available=1)。这些通知的目的是让应用程序a chance在运行期间更新其内容,而不是“immediate”,也不是可靠的。

iOS将根据无证、能源相关的情况决定何时交付此通知。

换句话说,只有当iOS决定时,你的应用程序才会被通知,它不会影响电池。从我的观察来看,这取决于很多事情,比如:

  • 如果你的设备连接到电源,
  • 使用3G的Wi,
  • 上次通知的时间,
  • 能源和数据带宽应用程序用于处理最后一个,itd.
  • 设备在最近几年使用的时间和方式(锁定/解锁屏幕)

我甚至注意到在调试会话(通过Xcode,通过电缆连接)中运行的应用程序之间的区别--通知总是被传递,而当我从Springboard / in发布模式(不同的能量条件)启动app时,它就开始不正常了。

票数 0
EN

Stack Overflow用户

发布于 2015-06-30 12:12:46

代码语言:javascript
复制
 [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
 [[UIApplication sharedApplication] registerForRemoteNotifications];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27497262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档