我正在寻求向应用程序发送状态更新,这可以(或不)保持沉默。
例如,如果用户从他们的某个朋友那里收到新消息,我想发送此消息,并能够显示带声音的提醒。
但在无声的情况下,我希望用户不要注意这样的通知。它必须由申请表收集;例如,如果我的用户有两个设备并且他在其中一个设备中更改了他的名字,我想发送另一个设备(正在休眠)静默名称更新,这应该在后台触发更改(被调度到应用程序)。
根据我所读到的,这实际上是可行的,但我对其实际情况或应该如何完成感到困惑,并且有时会有一些矛盾。作为后端开发人员,我可以做任何事情,但我需要确保它适用于前端人员。
这里有一些相关主题:
Silent background push on iOS and Android
Push Notifications without alert
答案 0 :(得分:34)
<强>机器人:强>
<强> 更新: 强> FCM的新文档:https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages
只要您的有效负载中未包含notification
标记并在其中加入data
标记,您就会收到无声通知
此示例将显示通知
{ "notification": {
"title": "Portugal vs. Denmark",
"text": "5 to 1"
},
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
}
这不会显示通知
{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data" : {
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
},
}
到这里阅读更多https://developers.google.com/cloud-messaging/concept-options#notifications_and_data_messages
<强>的iOS 强>
将标记contentAvailable: 1
添加到您的json有效负载,然后您会收到静默通知
那么简单
答案 1 :(得分:4)
可接受的答案指向不推荐使用的文档。
您应该改用此命令:Firebase documentation
数据消息如下:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}
}
}
通知消息:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
}
希望这会使其他人避免我从公认的答案中头痛。