我找到了各种关于如何在 Firebase for android 和 iOS 上配置消息 json 以进行推送通知的示例。但是我有一个问题,并非所有推送消息都到达我的客户端应用程序。我注意到在不同的安卓版本上,它以不同的方式工作。其中一些没有收到任何消息,其中一些没有配置的铃声,其中一些仅使用默认铃声,有些工作正常。在客户端,我认为每件事都应该没问题。我正在使用 xamarin 形式。我的消息 json 看起来像这样。我现在读到我应该删除通知标签,但它适用于较旧的机器人?
{
"to": "/topics/MYTOPIC",
"notification": {
"title": null,
"body": "test",
"sound": "de900",
"content_available": true
},
"priority": "high",
"data": {
"missionGuid": "",
"eventGuid": "",
"messageGuid": "e3ab4c34-125b-4ea7-abf7-3ee8fe1453ce",
"ric": "199900",
"title": null,
"body": "test",
"priority": "high",
"sound": "de900"
},
"android": {
"priority": "high",
"notification": {
"title": null,
"body": "test",
"sound": "de900",
"content_available": true
},
"data": {
"missionGuid": "",
"eventGuid": "",
"messageGuid": "e3ab4c34-125b-4ea7-abf7-3ee8fe1453ce",
"ric": "199900",
"title": null,
"body": "test",
"priority": "high",
"sound": "de900"
},
},
"apns": {
"headers": {
"apns-priority": 10
},
"payload": {
"aps": {
"alert": {
"title": null,
"body": "test"
},
"sound": "de900"
}
}
}
}
在notification
有效负载中设置"priority"
和"sound"
对我从来没有帮助。这种行为非常奇怪。我决定仅使用Data
有效负载,并在该方法中处理background/foreground
消息onMessageReceived
并显示您的自定义通知。
在此之后,我能够以最高的priority
,pop-ups
和声音显示通知。
在此处阅读有关 Firebase 数据消息的更多信息
据我所知,设置"priority": "high"
是确保通知立即发送的唯一方法。如果他们仍然无法收到任何东西,那可能是客户方面的事情。
对于铃声,据说,"sound": "WHATEVER"
应该指定声音,但同样,由于不同的 OEM 和系统变体,仅发送数据消息并在收到时自己推送通知可能会更一致,但您应该知道,即使这样也可能不能保证传递或铃声。
事实上,在某些设备上,这工作正常(希望是大多数(,表明您可能对配置进行了正确的设置,您可以做的最好的事情是自己处理通知,并且可能对特定设备有特殊情况。