我们正在SIP应用中使用Firebase,以便在应用离线时向我们发送未接来电通知和聊天通知。
虽然发送和接收工作正常,但我们对Android客户端产生影响,5个未接来电显示5个未接来电通知,填写客户端设备上的通知栏。
我们如何将这些通知合并在一起,只显示一个" 5个未接来电"通知?
我们可以在邮件的data
或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"
}
}
那么将它们组合在一起的技巧是什么?
答案 0 :(得分:3)
我们找到了正确的解决方案。
通知内容有更多现有关键字。
我们需要的是"tag"
。
我们甚至可以通过在loc
个密钥中提供资源名称来本地化通知的客户端文本。
以下是可以捆绑在一起的正确消息:
{
"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"
}
}
tag
将由客户合并...说:他们将互相替换。每当带有标记的通知到达时,它都会用相同的标记替换所有其他现有通知。
所以这里的技巧是提供一个运行计数<<missed_call_count>>
(服务器必须计算),这样客户端就可以显示越来越多的数字,比如“5次未接来电”。
字符串"%d missed calls"
存储在名为"notification_missed_call_multiple"
的客户端字符串资源中。