根据Apple's official documentation,如果有人发送"无声通知",即我们有content-available: 1
的通知
对于后台下载应用:推送通知到达应用 并且通知的有效负载包含内容可用密钥 值为1.系统在机会主义时刻唤醒应用程序 开始下载新内容。适用于下载内容的应用 后台使用NSURLSession类,与之关联的所有任务 该会话对象要么已成功完成,要么已收到 错误。由报亭应用程序启动的下载完成。
也在该文件中说
应用程序通常会在用户看到通知的大致相同的时间被唤醒,但仍然比您提供的时间更长。
如何解释这个?如果在plist中提交了UIBackgroundMode
remote-notification
的应用,那么这是否意味着如果我们发送远程通知,该应用实际上是在后台启动?即使用户已重新启动iOS设备,并且没有启动我们的应用程序?即使用户强行退出我们的应用程序之前?
我的问题是,上述期望有多可靠?有没有人有直接经验和测试过这种情况,并且在你的经历中100%都是如此?
答案 0 :(得分:0)
来自Apple
配置无声通知
aps词典还可以包含content-available属性。 值为1的content-available属性允许远程 通知充当无声通知。当一个无声的通知 到了,iOS在后台唤醒你的应用程序,以便你可以得到 来自服务器的新数据或进行后台信息处理。 不会告知用户有关新信息或已更改的信息 从一个无声的通知,但他们可以找到下一个 他们打开你的应用程序的时间。
对于无声通知,请注意确保没有警报, aps字典中的声音或徽章有效负载。如果你不遵循 在此指南中,可能是错误配置的通知 限制而不是在后台传递给应用程序,而是 静默显示给用户
iOS会唤醒你的应用程序,并会给你最多30秒的时间来下载你需要的东西。请注意,通知不可靠,因此您无法相信它们会在100%的时间内到达。如果您要显示非常重要的数据,则需要在用户打开时验证您的应用是否同步。后台获取只是为了改善用户体验