2 回答
![?](http://img1.sycdn.imooc.com/533e4c5600017c5b02010200-100-100.jpg)
TA贡献1966条经验 获得超4个赞
它们可用于在不通知用户的情况下通知新内容的应用。应用程序将在后台唤醒(如果用户强行退出,iOS不会自动启动您的应用程序),而应用程序:didReceiveRemoteNotification:fetchCompletionHandler:将被调用,而不是显示通知警报 。然后,您有机会以透明方式处理用户的任何信息:
下载一些内容
同步一些元素,
当用户打开它时,直接在应用程序内通知用户
请注意,您的时间限制为30秒。
配置静默通知
要支持静默远程通知,请将remote-notification值添加到Info.plist文件中的UIBackgroundModes数组。要了解有关此数组的更多信息,请参阅UIBackgroundModes。
<key>UIBackgroundModes</key><array> <string>remote-notification</string></array>
配置无提示通知
aps字典还可以包含content-available属性。值为1的content-available属性允许远程通知充当静默通知。当无声通知到达时,iOS会在后台唤醒您的应用程序,以便您可以从服务器获取新数据或进行后台信息处理。用户不会被告知由静默通知产生的新信息或更改信息,但他们可以在下次打开您的应用时找到相关信息。
对于静默通知,请注意确保aps字典中没有警报,声音或徽章有效负载。如果您不遵循此指南,则可能会限制配置不正确的通知,并且不会在后台传递给应用程序,而是向用户显示而不是静默
![?](http://img1.sycdn.imooc.com/5333a0780001a6e702200220-100-100.jpg)
TA贡献1810条经验 获得超4个赞
当您发送静默推送通知并且应用程序被暂停时,系统会在调用方法之前唤醒或启动您的应用程序并将其置于后台运行状态,但如果应用程序被用户手动终止,则它将不会被唤醒。
应用:didReceiveRemoteNotification:fetchCompletionHandler:
当您发送静默推送通知并且您的应用程序有最多30秒的挂钟时间来执行下载或任何其他类型的操作并调用指定的完成处理程序块时,将调用此方法。如果未及时调用处理程序,您的应用程序将被暂停。
如果要发送静默推送通知,则通知负载应如下所示:
{ "aps" = { "content-available" : 1, "sound" : "" }; // You can add custom key-value pair here... }
- 2 回答
- 0 关注
- 731 浏览
添加回答
举报