【问题标题】:GCM works fine on Android but not working on iOSGCM 在 Android 上运行良好,但在 iOS 上无法运行
【发布时间】:2015-07-14 13:38:29
【问题描述】:

我已经成功实现了 Android 的 GCM,但是当我尝试将它实现到我的 iOS 版本时,我不会收到推送消息。

我在 iOS 版本中获得了我的 gcm 令牌,并且可以发送消息(我使用 Postman)。 我得到了成功的响应和唯一的消息 ID,但没有收到推送。这几天我一直在为此苦苦挣扎。

我尝试创建一个新的 GCM 项目并运行 iOS 的 GCM 示例,但没有任何效果。

我在 iOS 和 Android 上使用相同的帐户,当然也有相同的 apiKey。

邮递员代码:

{
          "collapse_key": "score_update",
          "time_to_live": 108,
          "delay_while_idle": true,
          "data": {
            "score": "4x8",
            "time": "15:16.2342"
          },
          "registration_ids":["My Token"],
}

我错过了什么?

【问题讨论】:

  • 发布您用于 GCM HTTP 或 XMPP 请求的代码
  • 添加了用于发送邮件的邮递员代码
  • 嘿,juvi,你能分享你的 android gcm 代码吗??

标签: android ios google-cloud-messaging


【解决方案1】:

我遇到了同样的问题,通过使用 content_available 和 priority 选项解决了这个问题,如下面的文档所示:

您应该发送 "content_available":true"priority":"high",

https://developers.google.com/cloud-messaging/http-server-ref

示例 JSON 请求:

{
  "content_available":true,
  "to":"fd4...23f7",
  "priority":"high",
  "notification":
    {
    "body":"anything",
    "title":"any title"
    }
}

【讨论】:

    【解决方案2】:

    难以置信,不得不用“通知”更改“数据”。 iOS 的有效负载有点不同。更多信息可以找到here

    【讨论】:

    • 我正要建议。通知负载在 iOS 上效果更好,数据负载在 Android 上效果更好。
    • 所以我必须在发送请求之前检查用户使用的平台?
    • 是的。当你注册用户时,确保你也抓住了操作系统字段。
    • 你确定吗?当我尝试时,我得到"error": "InvalidParameters"
    • 确保您的令牌有效
    猜你喜欢
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多