目的是发送仅带徽章价值的推送通知。没别的(没有横幅)。
我将解析sdk集成到测试推送通知&发送此推送通知
{
"alert" :"",
"badge" :"787",
"Content-available" : "1",
"sound" : ""
}
因此当应用程序处于后台,前台和后台时,推送通知已发送当应用程序被杀死。 用徽章阀78在推送通知到达时擦除一些数据的目的成功。 我发送了与“Content-available”相同的通知:删除了“1”,但是之前一切正常。
我对“内容可用”的理解是,将其值设置为1将允许推送通知而没有警报值。
所以我很困惑,或者我想知道这个推送通知JSon中“Content-available”的含义。
由于
答案 0 :(得分:7)
如果您为此键提供值1(如果用户打开,您的应用处于后台或已恢复),则会调用application:didReceiveRemoteNotification:fetchCompletionHandler:。
根据RemoteNotifications Programming content-available
定义是
为此键提供值1以指示新内容 可用。包含此键和值意味着您的应用是 在后台发布或恢复, application:didReceiveRemoteNotification:fetchCompletionHandler:is 调用。
(报亭应用程序保证能够至少接收一次推送 每24小时窗口使用此键。)
答案 1 :(得分:2)
简短的回答:对我来说,我只是使用“ content_available”:“ 1” 或“ content_available”:true 在iOS中恢复后台/退出模式。请注意,在我的情况下,它是下划线而不是连字符。
在我的特定情况下,我的应用是使用react-native开发的,并且我已经使用https://rnfirebase.io进行推送通知
这里有一个完整的解释: https://rnfirebase.io/messaging/usage#data-only-messages
在IOS中content_available”:“ 1
在Android中等效 优先级:“高”,
在这两种情况下,当应用程序从后台恢复时,后台消息都会调用onMessage()方法,因此程序可以从那里运行一些特定的代码。
以下是使用CURL发送推送通知的示例:
#curl -H“内容类型:application / json” -H“ Authorization:key =#MyAuthHashCode#” -X POST -d'{“ to”:“ / topics /#thetopicnumber#”,“ notification” :{“ title”:“主题的味精”,“ body”:“ bodytext”,“ content_available”:“ true”}}'https://fcm.googleapis.com/fcm/send
答案 2 :(得分:2)
TL;博士:
"content-available" : 0
:默认;您的应用不会收到发送通知的通知除非应用在前台。"content-available" : 1
:如果您的应用程序在前台或后台(应用程序将被唤醒)。您唯一需要使用 "content-available" : 1
的时间是 background update notifications:
后台更新通知为您提供了一种定期唤醒应用的方式,以便它可以在后台刷新其数据,从而改善用户体验。当应用程序长时间不运行时,它们的数据可能会过时。当用户最终再次启动应用程序时,必须替换过时的数据,这会导致应用程序的使用延迟。后台更新通知可以提醒用户,也可以静默发生。
但是,这并不总是意味着此通知对用户不可见:
<块引用>如果有用户可见的更新伴随后台更新,您可以根据需要在 aps 字典中设置警报、声音或徽章键。
默认情况下,"content-available"
设置为 0
。这些“常规”通知不会立即通知应用程序,除非应用程序处于前台。相反,这些“常规”通知通过通知上的“Haptic Touch”通知应用when a user taps on them or has selected an option。
后台更新通知发送至application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
:
与仅在您的应用在前台运行时调用的 application(_:didReceiveRemoteNotification:)
方法不同,当您的应用在前台或后台运行时,系统会调用此方法。
注意:“您的应用程序”和“设备”之间有一个关键区别:如果有效负载请求显示通知,设备将显示通知,但这并不总是意味着“您的应用程序”将在传递此通知时收到通知(即“您的应用程序”代码将运行)。这就是 "content-available": "1"
的用武之地:“您的应用程序”将始终收到通知,除非它被终止。