【问题标题】:Firebase merge similar notifications in AndroidFirebase 在 Android 中合并类似的通知
【发布时间】:2017-01-12 11:05:17
【问题描述】:

我们在 SIP 应用程序中使用 Firebase,以在应用程序离线时向我们发送未接来电通知和聊天通知。

虽然发送和接收工作正常,但我们对 Android 客户端的效果是,5 个未接电话 obv 会产生 5 个未接电话通知,填满客户端设备上的通知栏。

我们如何将这些通知合并在一起,只显示一个“5 个未接来电”通知?

我们可以在消息的datanotification 部分中添加任何其他标志(如分组)吗?

以下是我们当前未接来电通知的示例:

{
    "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"
    }
}

那么将它们组合在一起有什么技巧呢?

【问题讨论】:

    标签: android firebase notifications firebase-cloud-messaging


    【解决方案1】:

    我们找到了正确的解决方案。 通知内容有更多现有的关键字。 我们需要的是"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 将被客户端合并...比如说:它们将相互替换。每当带有标签的通知到达时,它都会用相同的标签替换所有其他现有通知。 所以这里的技巧是,提供一个运行计数&lt;&lt;missed_call_count&gt;&gt;(服务器必须计数),所以客户端可以显示一个不断增加的数字,比如“5 个未接来电”。 字符串"%d missed calls" 存储在名为"notification_missed_call_multiple" 的客户端字符串资源中。

    【讨论】:

      猜你喜欢
      • 2022-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多