15

目的是发送只有徽章值的推送通知,没有其他内容(没有横幅)。

我集成了 parse sdk 来测试推送通知并发送此推送通知

{
"alert" :"",
"badge" :"787",
"Content-available" : "1",
"sound" : ""
}

因此,当应用程序处于后台、前台和应用程序被终止时,会发送推送通知。使用徽章阀 78 在推送通知到达时擦除一些数据的目的成功了。我发送了相同的通知,但删除了“Content-available”:“1”,但一切正常。

我对“内容可用”的理解是,将其值设为 1 将允许推送通知而没有警报值。

所以我很困惑,或者我错过了一些东西来了解这个推送通知 JSon 中“内容可用”的含义。

谢谢

4

3 回答 3

17

如果您为此键提供值为 1,(如果用户打开您的应用程序在后台或恢复)应用程序:didReceiveRemoteNotification:fetchCompletionHandler:将被调用。

根据RemoteNotifications 编程 content-available定义是

为该键提供值 1 以指示有新内容可用。包含此键和值意味着当您的应用在后台启动或恢复时,会调用 application:didReceiveRemoteNotification:fetchCompletionHandler:。

(报亭应用程序保证能够在每 24 小时窗口内收到至少一次使用此键的推送。)

于 2015-01-05T10:32:15.517 回答
7

TL;博士:

  • "content-available" : 0:默认值;除非应用程序在前台,否则您的应用程序不会收到通知的发送通知。
  • "content-available" : 1:如果您的应用程序处于前台或后台,您的应用程序收到通知的发送通知(应用程序将被唤醒)。

您唯一需要使用"content-available" : 1的是后台更新通知

后台更新通知通过为您提供一种定期唤醒应用程序的方法来改善用户体验,以便它可以在后台刷新其数据。当应用程序长时间不运行时,它们的数据可能会过时。当用户最终再次启动应用程序时,必须替换过时的数据,这可能会导致应用程序的使用延迟。后台更新通知可以提醒用户,也可以静默发生。

但是,这并不总是意味着此通知对用户不可见:

如果有用户可见的更新伴随着后台更新,您可以根据需要在 aps 字典中设置警报、声音或标记键。

默认情况下,"content-available"设置为0。这些“常规”通知不会立即通知应用程序,除非应用程序处于前台。相反,当用户点击这些“常规”通知或通过通知上的“触觉触摸”选择选项时,这些“常规”通知会通知应用程序。

后台更新通知发送至application(_:didReceiveRemoteNotification:fetchCompletionHandler:)

application(_:didReceiveRemoteNotification:)仅在您的应用程序在前台运行时调用的方法不同,系统在您的应用程序在前台或后台运行时调用此方法。

注意:“您的应用程序”和“设备”之间有一个关键区别:如果有效负载请求显示通知,设备将显示通知,但这并不总是意味着“您的应用程序”将在交付时收到通知此通知(又名“您的应用程序”代码将运行)。这就是"content-available": "1"进来的地方:“您的应用程序”将始终得到通知,除非它被终止。

于 2021-01-18T15:38:37.183 回答
0

简短的回答:对我来说,我只是使用 "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 "内容类型:应用程序/json" -H "授权:key=#MyAuthHashCode#" -X POST -d '{ "to": "/topics/#thetopicnumber#","notification": { "标题”:“主题的消息”,“正文”:“bodytext”,“content_available”:“true”}}' https://fcm.googleapis.com/fcm/send

于 2020-08-11T17:50:22.010 回答