当iOS应用程序未通过静默通知运行时启动它

时间:2017-03-26 21:17:13

标签: ios iphone remote-notifications

根据Apple's official documentation,如果有人发送"无声通知",即我们有content-available: 1的通知

  

对于后台下载应用:推送通知到达应用   并且通知的有效负载包含内容可用密钥   值为1.系统在机会主义时刻唤醒应用程序   开始下载新内容。适用于下载内容的应用   后台使用NSURLSession类,与之关联的所有任务   该会话对象要么已成功完成,要么已收到   错误。由报亭应用程序启动的下载完成。

也在该文件中说

  

应用程序通常会在用户看到通知的大致相同的时间被唤醒,但仍然比您提供的时间更长。

如何解释这个?如果在plist中提交了UIBackgroundMode remote-notification的应用,那么这是否意味着如果我们发送远程通知,该应用实际上是在后台启动?即使用户已重新启动iOS设备,并且没有启动我们的应用程序?即使用户强行退出我们的应用程序之前?

我的问题是,上述期望有多可靠?有没有人有直接经验和测试过这种情况,并且在你的经历中100%都是如此?

1 个答案:

答案 0 :(得分:0)

来自Apple

  

配置无声通知

     

aps词典还可以包含content-available属性。   值为1的content-available属性允许远程   通知充当无声通知。当一个无声的通知   到了,iOS在后台唤醒你的应用程序,以便你可以得到   来自服务器的新数据或进行后台信息处理。   不会告知用户有关新信息或已更改的信息   从一个无声的通知,但他们可以找到下一个   他们打开你的应用程序的时间。

     

对于无声通知,请注意确保没有警报,   aps字典中的声音或徽章有效负载。如果你不遵循   在此指南中,可能是错误配置的通知   限制而不是在后台传递给应用程序,而是   静默显示给用户

iOS会唤醒你的应用程序,并会给你最多30秒的时间来下载你需要的东西。请注意,通知不可靠,因此您无法相信它们会在100%的时间内到达。如果您要显示非常重要的数据,则需要在用户打开时验证您的应用是否同步。后台获取只是为了改善用户体验