2017-04-25 242 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