我们在 SIP 应用程序中使用 Firebase,以便在应用程序离线时向我们发送未接来电通知和聊天通知。
虽然发送和接收工作正常,但我们对 Android 客户端产生了影响,5 个未接来电 obv 会生成 5 个未接来电通知,填满客户端设备上的通知栏。
我们如何将这些通知合并在一起,只显示一个“5 个未接来电”通知?
是否有任何额外的标志(如分组)我们可以放入data
or notification
消息的一部分?
以下是我们当前的未接来电通知的示例:
{
"to":"<<FCMToken>>",
"priority":"high",
"notification":{
"title":"<<Displayname-of-Caller>>",
"text":"<<Date-and-time-of-call>>",
"icon":"icon_notification_missed",
"click_action":"MISSED_CALL"
},
"data":{
"type":"sip-call-missed"
}
}
那么将它们结合在一起有什么技巧呢?
我们找到了正确的解决方案。
通知内容现有的关键字较多。
我们需要的是"tag"
。
我们甚至可以通过在中提供资源名称来本地化通知的客户端文本loc
keys.
这是可以捆绑在一起的正确消息:
{
"to":"<<FCMToken>>",
"priority":"high",
"notification":{
"title_loc_key":"notification_missed_call",
"tag":"MISSED_CALL",
"body_loc_key":"notification_missed_call_multiple",
"body_loc_args":["<<missed_call_count>>"],
"icon":"icon_nav_main_chat",
"click_action":"MISSED_CALL"
},
"data":{
"type":"sip-call-missed"
}
}
The tag
将被客户合并...说:他们将互相替换。每当带有标签的通知到达时,它都会替换具有相同标签的所有其他现有通知。
所以这里的技巧是提供一个运行计数<<missed_call_count>>
(服务器必须对其进行计数),因此客户端可以显示不断增加的数字,例如“5 个未接来电”。
字符串"%d missed calls"
存储在名为的客户端字符串资源中"notification_missed_call_multiple"
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)