GCM 未在通知中使用来自 JSON 有效负载的数据

Posted

技术标签:

【中文标题】GCM 未在通知中使用来自 JSON 有效负载的数据【英文标题】:GCM not using data from JSON payload in the notification 【发布时间】:2015-07-20 21:26:44 【问题描述】:

我正在通过 GCM(Google 云消息传递)发送以下 JSON,但我无法通过客户端获取正确的响应数据。我收到了推送通知响应,但标题是应用程序的名称,并且文本显示:“消息”,因此我无法正确显示我的通知。

这是我要发送的 JSON:

  
  "to": "somekey",
  "notification":   
      "body":"Test",
      "title":"Test"
  ,
  "data": null

【问题讨论】:

【参考方案1】:

我认为您的问题出在消息的有效负载的键值上。

正如您在GCM Server documentation 看到的那样,有效负载可以使用两个不同的键来设置:

data:此参数指定消息的负载的键值对。 notification:该参数指定notification载荷的键值对。

您应该使用 data 键并在通知的 payload 内设置。发送后,您可以打印收到的通知结果,并查看 data 键内是否有正确的有效负载。

您的消息应该类似于以下 JSON 数据:


  "registration_ids" => "some_target_device_id",
  "data": 
      "title": "My title",
      "message": "This is the message!",
  

【讨论】:

【参考方案2】:
Authorization: key= AIz......#GCM project key

 "data": 
              "title": "Summer Offer.",
              "message": "Click to visit the offer."
          ,
              "to" : "Device Token"

【讨论】:

欢迎来到 SO。请注意,仅代码答案不符合 SO 的标准。见***.com/help/how-to-answer

以上是关于GCM 未在通知中使用来自 JSON 有效负载的数据的主要内容,如果未能解决你的问题,请参考以下文章

当应用程序处于后台时,Android 2nd 推送通知有效负载数据未在附加中接收

Google GCM - 未在 android Lollipop 中接收推送通知

使用 GCM 的 iOS 自定义推送通知声音

当应用程序未运行时,GCM 推送通知未在某些设备中显示

如果 GCM 自动显示,如何在 Android 中处理点击通知

Android GCM:通知关闭后重复推送