0

根据苹果的官方文档,如果一个人发送一个“静默通知”,即content-available: 1我们有一个通知

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

该文件中还说

应用程序通常在用户看到通知的大致同一时间被唤醒,但这仍然会给您比其他情况更多的时间。

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

我的问题是,上述期望有多可靠?有没有人对此有过直接的经验并对此进行了测试,并且在您的经验中 100% 的时间都是正确的?

4

1 回答 1

0

来自苹果

配置静默通知

aps 字典还可以包含 content-available 属性。值为 1 的 content-available 属性让远程通知充当静默通知。当静默通知到达时,iOS 会在后台唤醒您的应用程序,以便您可以从服务器获取新数据或进行后台信息处理。用户不会被告知由静默通知产生的新信息或更改信息,但他们可以在下次打开您的应用程序时了解这些信息。

对于静默通知,请注意确保 aps 字典中没有警报、声音或标记负载。如果您不遵循此指导,错误配置的通知可能会受​​到限制,并且不会在后台传递到应用程序,而是向用户显示而不是静默

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

于 2017-03-27T00:46:15.533 回答