2017-01-12 38 views
1

我們在SIP應用中使用Firebase,可在應用脫機時向我們發送未接來電通知和聊天通知。Firebase在Android中合併類似通知

雖然發送和接收工作正常,但我們對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" 
    } 
} 

那麼什麼是在它們組合爲一體的伎倆?

回答

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"的客戶端字符串資源中。

+0

感謝您分享您的解決方案Grisgram。乾杯! :) –