GCM collapse_key 不工作

GCM collapse_key not working

我有一个 python/django 应用程序正在向 GCM 发送推送通知,但我无法使 collapse_key 参数起作用。它为每条新消息创建一个新通知,而不是折叠它们。 python 代码如下所示:

  url = 'https://gcm-http.googleapis.com/gcm/send'                                                                                        
  post_data = {                                                                   
      'to': mytoken,                                                                
      'collapse_key': 'myappname',                                                  
      'data': mydata                                                                
  }                                                                               
  headers = {                                                                     
      'Authorization': 'key={}'.format(GCM_API_KEY),                     
      'Content-Type': 'application/json'                                          
  }                                                                                                                                               
  requests.post(                                                                  
      url,                                                                        
      data=json.dumps(post_data),                                                 
      headers=headers) 

通知没有问题,但不会崩溃。我做错了什么吗?

客户端是一个使用 phonegap 推送通知插件 (https://github.com/phonegap-build/PushPlugin) 的 phonegap 移动应用程序。该插件正在处理设备上的推送通知,我不确定如何更改它创建和显示它们的方式。

如果其他人遇到同样的问题,那么解决方法似乎是在 data 中传递 notId 参数。具有相同notId的通知将相互替换。

collapse_key 仅在设备离线时有效,例如,如果我的设备处于飞行模式,并且它收到了 5 条相同 collapse_key 的消息,设备只会收到关闭飞行模式时的最后一个。

如果设备持续连接到 GCM,则每条消息都会到达您的设备。

听起来你想在你的通知上设置一个 tag,这样当新消息到达时它会替换现有的通知。