如何在 GCM 中使用折叠键
Posted
技术标签:
【中文标题】如何在 GCM 中使用折叠键【英文标题】:How to use collapse key in GCM 【发布时间】:2013-08-04 11:16:37 【问题描述】:我正在从 php 向 android 设备发送推送通知。 除了我 不希望 消息崩溃之外,一切正常。 这是我的代码
$random_collapse = rand(11, 100);
$fields = array(
'registration_ids' => $receivers,
'data' => array( "message" => $message ),
'collapse_key' => "$random_collapse",
"time_to_live" => 25000
);
请建议。
编辑
这个我也用过
$fields = array(
'registration_ids' => $receivers,
'data' => array( "message" => $message ),
);
但还是没有运气
【问题讨论】:
你如何确定它们是否被折叠?您的应用如何处理来自 GCM 的消息?如果您使用相同的NOTIFICATION_ID
,设备可能会折叠消息。
【参考方案1】:
您可能在您的 android 设备上使用相同的 notificationId。 它会产生折叠键的效果。
折叠键仅用于从 gcm 到您的设备的延迟和连接问题,当设备再次连接时,gcm 只会发送服务器收到的最后一个折叠键。如果设备已连接,即使它们获得相同的折叠键,您也会收到多次推送(考虑到下一个折叠键是在设备已经收到旧的折叠键时发送的)。
如果您想做类似崩溃的whatsapp,您还必须在您自己的设备上管理它们,以防设备将保持连接到gcm并接收这些消息(正如我所说的gcm不能撤回您已经显示的推送在客户端设备 IE 上相同的折叠键),所以现在您将使用与该通知相同的 notificationId。
底线 - 通知 ID 是您(!)设备的“折叠键”。 您必须保存这对通知才能知道何时删除旧通知以及何时显示新通知。
【讨论】:
【参考方案2】:This 详尽地使用了可折叠消息。看看吧。
【讨论】:
以上是关于如何在 GCM 中使用折叠键的主要内容,如果未能解决你的问题,请参考以下文章
GCM 会在短时间内发送复制主题消息,而 gcm 会延迟发送吗?
如何构建对 GCM 云连接服务器 (XMPP) 的通知密钥请求?
如何使用 GCM 在 Android 中解析或实际获取推送消息