什么是无声推送通知? 设备何时收到?
我想清除通知托盘中的本地通知。 为了实现这一点,我正在考虑使用静默推送通知。 所以我想确认什么时候该设备收到它,我可以用它做什么?
他们可以用来通知应用程序的新内容,而无需通知用户。 应用程序将不会显示通知警报,而是在后台和应用程序中被唤醒:didReceiveRemoteNotification:fetchCompletionHandler:将被调用。 然后,您有机会透明地为用户处理任何信息:
- 下载一些内容
- 同步一些元素,
- 应用程序打开时直接通知用户
请注意,你的时间被限制在30秒。
configuration无提示通知
要支持静默远程通知,请将远程通知值添加到Info.plist文件中的UIBackgroundModes数组中。 要了解有关此arrays的更多信息,请参阅UIBackgroundModes。
<key>UIBackgroundModes</key> <array> <string>remote-notification</string> </array>
configuration无声通知
aps字典也可以包含内容可用的属性。 具有值为1的内容可用属性可让远程通知用作无声通知。 无声通知到达时,iOS会在后台唤醒您的应用程序,以便您可以从服务器获取新数据或进行后台信息处理。 用户不会被告知由静默通知产生的新信息或更改的信息,但是他们可以在下次打开您的应用程序时了解这些信息。
对于无声通知,请注意确保aps字典中没有警报,声音或徽章有效负载。 如果您不遵循此指导原则,则可能会限制configuration不正确的通知,而不会在后台将其传递到应用程序,而不会向用户显示
当您发送无声推送通知时,如果应用程序被暂停,那么系统会唤醒或启动您的应用程序,并在调用方法之前将其置于后台运行状态,但如果应用程序被用户手动终止,则不会唤醒。
应用:didReceiveRemoteNotification:fetchCompletionHandler:
当您发送静默推送通知时,将调用此方法,并且您的应用程序有多达30秒的挂钟时间来执行下载或任何其他types的操作,并调用指定的完成处理程序块。 如果处理程序未及时调用,您的应用程序将被暂停。
如果你想发送一个静默推送通知,那么你的通知负载应该是这样的:
{ "aps" = { "content-available" : 1, "sound" : "" }; // You can add custom key-value pair here... }