Nan*_*ari 11 push-notification apple-push-notifications ios silent-notification
目的是发送仅带徽章值的推送通知,而不发送任何其他内容(无横幅).
我集成了解析sdk以测试推送通知并发送此推送通知
{
"alert" :"",
"badge" :"787",
"Content-available" : "1",
"sound" : ""
}
Run Code Online (Sandbox Code Playgroud)
所以推送通知在应用程序处于后台,前台和应用程序被杀时发送.用徽章阀78在推送通知到达时擦除一些数据的目的成功.我发送了与"Content-available"相同的通知:删除了"1",但是之前一切正常.
我对"内容可用"的理解是,将其值设置为1将允许推送通知而没有警报值.
所以我很困惑,或者我想知道这个推送通知JSon中"Content-available"的含义.
谢谢
kga*_*dis 24
长话短说:
"content-available" : 0:默认;除非应用程序位于前台,否则您的应用程序不会收到通知发送的通知。"content-available" : 1:如果您的应用程序位于前台或后台(应用程序将被唤醒),则会通知您的应用程序已发送通知。您唯一需要使用的"content-available" : 1是后台更新通知:
后台更新通知为您提供了一种定期唤醒应用程序的方法,以便它可以在后台刷新其数据,从而改善用户体验。当应用程序长时间不运行时,其数据可能会过时。当用户最终再次启动应用程序时,必须替换过时的数据,这可能会导致应用程序的使用延迟。后台更新通知可以提醒用户,也可以静默发生。
但是,这并不总是意味着该通知对用户不可见:
如果存在与后台更新一起出现的用户可见更新,您可以根据需要在 aps 字典中设置警报、声音或徽章键。
默认情况下,"content-available"设置为0。这些“常规”通知不会立即通知应用程序,除非应用程序位于前台。相反,当用户点击这些“常规”通知或通过通知上的“触觉触摸”选择选项时,这些“常规”通知会通知应用程序。
后台更新通知发送至application(_:didReceiveRemoteNotification:fetchCompletionHandler:):
application(_:didReceiveRemoteNotification:)与仅当您的应用程序在前台运行时才会调用该方法不同,当您的应用程序在前台或后台运行时系统会调用此方法。
注意:“您的应用程序”和“设备”之间有一个关键区别:如果有效负载请求显示通知,设备将显示通知,但这并不总是意味着“您的应用程序”将在交付时收到通知此通知(也称为“您的应用程序”代码将运行)。这就是"content-available": "1"出现的地方:“您的应用程序”将始终收到通知,除非它被终止。
如果您为此键提供值1(如果用户打开,则应用程序处于后台或已恢复),将调用application:didReceiveRemoteNotification:fetchCompletionHandler:.
根据RemoteNotifications编程 content-available定义是
为此键提供值1以指示新内容可用.包含此键和值意味着当您的应用程序在后台启动或恢复时,应用程序:didReceiveRemoteNotification:fetchCompletionHandler:被调用.
(报亭应用程序保证每24小时窗口至少能够使用此密钥进行一次推送.)
| 归档时间: |
|
| 查看次数: |
13188 次 |
| 最近记录: |