2017-04-25 241 views
1

我正在從FCM向Android設備發送推送通知,這是通過向包含JSON主體的FCM發送POST消息來完成的。Android FCM - 如何僅顯示一個通知

如果我發送兩次相同的JSON主體,Android設備將顯示兩個通知(或三個或四個...)。但我希望它只顯示一個。

「collapse_key」應該解決這個問題吧? (FCM Documentation

但是在哪裏或如何插入?

這太問題回答了這一點,但沒有實例說明:Can FCM notification on Android overwrite previous one?

當前JSON體:

{ 
    "notification": { 
     "title": "MyAPP", 
     "body": "Open MyAPP to access your data", 
     "click_action" : "OPEN_MAINACTIVITY", 
     "icon": "ic_launcher_red", 
     "color": "#ff0000" 
    }, 
    "data": { 
     "extra1":"sample1", 
     "extra2":"sample2" 
    }, 
    "registration_ids":[ 
     "--my_id--" 
    ] 
} 

我在很多方面包括「collapse_key的」,但至今沒有運氣都試過了。仍然是多個通知。歡迎任何幫助。

回答

3

嗯,我一直在挖,發現答案:它不是「collapse_key」,我本來應該在通知中使用「tag」選項。

因此,通過使用該JSON只是一個通知顯示:

{ 
    "notification": { 
     "title": "MyAPP", 
     "body": "Open MyAPP to access your data", 
     "click_action" : "OPEN_MAINACTIVITY", 
     "icon": "ic_launcher_red", 
     "color": "#ff0000" 
     "tag": "unique_tag" 
    }, 
    "data": { 
     "extra1":"sample1", 
     "extra2":"sample2" 
    }, 
    "registration_ids":[ 
     "--my_id--" 
    ] 
} 

希望這會幫助別人!

如果有人想進一步解釋「collapse_key」,我會很高興,很明顯我誤解了它。

+1

如果使用相同的collapse_key發送不同的消息,最後的消息將替換前一個消息。 「collapse_key」:「同一字符串爲新消息將被替換的消息」 – Juan

+1

是的,我期望這是行爲,但它不斷創建新消息。這就是我打開這個問題的方式,也許有人可以解釋「collapse_key」應該放在哪裏。然後我發現「標籤」元素在此成功併發布了答案。您是否可以使用「collapse_key」?你能提供一個JSON樣本嗎? –

+1

它與「To」鍵處於同一水平。對於我的項目我有它的工作,然後我刪除它,因爲有變更請求,但是它工作正常。 – Juan