如何使用 GCM 在 android 设备上分别显示每个推送通知

Posted

技术标签:

【中文标题】如何使用 GCM 在 android 设备上分别显示每个推送通知【英文标题】:How to display each push notification separately on android device using GCM 【发布时间】:2017-02-22 05:07:30 【问题描述】:

我正在从服务器向我的 phonegap 应用发送推送通知。它已成功交付,但问题是如果我发送多个通知,旧通知会被覆盖。 例如 上午 10:00 - 收到通知 1 上午 10:01 收到通知 2 在此通知中 1 Received 被第二条消息覆盖。但我想显示这两条消息都很重要。 我用谷歌搜索并在 *** 上找到了相同的解决方案。

GCM message is getting overridden?

但它适用于 android,我使用 phonegap 和 php 发送通知, 有什么方法可以指定我们可以在用户屏幕上保留这两条消息。

提前致谢。

【问题讨论】:

您使用哪个 Cordova 插件来显示通知? 我正在使用这个插件:github.com/phonegap-build/PushPlugin.git,但这只是向 gcm 注册设备,发送推送通知我在服务器端使用 PHP 以下解决方案对您有用吗?如果是这样,你真的应该接受正确的答案,因为它会帮助其他有同样问题的人。 【参考方案1】:

您的问题在于您使用 PHP 发送的有效负载数据。

来自https://developers.google.com/cloud-messaging/http-server-ref#notification-payload-support的文档

标签: 指示每条通知消息是否会在 Android 的通知中心产生一个新条目。如果未设置,每个请求都会创建一个新通知。如果设置,并且已显示具有相同标签的通知,则新通知将替换通知中心中的现有通知。

一种选择是将标签视为一个uniqid,只要您真的不需要返回并更新一些未读通知即可。如果您确实需要更新通知,请选择适合您情况的 ID。

【讨论】:

以上是关于如何使用 GCM 在 android 设备上分别显示每个推送通知的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Java GCM API 在 android 设备上获取失败推送通知的注册 ID

如何在基于 Java 的应用服务器上使用 GCM 向 iOS 设备发送推送通知

对于某些 android 设备,GCM 消息在 GCM 服务器上停留在“已接受”状态

Android GCM 发送成功但在某些设备上未收到

设备如何接收 Android GCM 推送通知?

如何获取存储在设备上的 GCM ID