【问题标题】:Background GCM Push Notification Not Received on Certain Apple Devices在某些 Apple 设备上未收到后台 GCM 推送通知
【发布时间】:2015-09-05 06:42:45
【问题描述】:

我已将我的 iOS 应用设置为通过 GCM 接收推送通知。设置完所有内容后,当应用程序在各种 Apple 设备上处于前台时,我就能收到通知。但是,当应用程序在后台时,我只收到某些设备的推送通知,即只有我的 iPhone 6。其他设备,如 iPhone 5s 和 iPod Touch 只能捕获通知当应用在前台时。

我查看了其他人关于这个问题的问题,我还没有看到一个特定于设备型号的错误。通常归结为不设置 content_available: true 设置,但我已经设置好了。这是我正在使用的有效负载示例:

{
    "to":".....",
    "content_available":true,
    "notification": {
            "title":"my title",
            "body":"my body",
            "sound":"default"
    }
}

我在 iPhone 6 上收到了这个背景通知(我的手机被唤醒并且我看到一个横幅),但其他设备(也使用 iOS v8.4.1)没有响应通知当应用在后台时。

其他细节:

  • 我正在使用企业版
  • 我正在使用生产 APN 服务器(并在 GCM 注册选项中指定)
  • 虽然我认为没有必要,但我已将所有设备都注册到我的 Apple 开发者帐户中。

任何想法都将不胜感激。

【问题讨论】:

    标签: ios notifications google-cloud-messaging


    【解决方案1】:

    您应该将priority 参数添加到您的请求中。例如

    {
        "to":".....",
        "content_available":true,
        "priority": "high", // Add this field corresponds to 10 for APNS
        "notification": {
                "title":"my title",
                "body":"my body",
                "sound":"default"
        } 
    }
    

    这里是提到priority 字段的GCM reference。如果您未设置优先级,则消息将通过Normal 优先级发送,在 APNS 的情况下,该优先级是高度可变的。

    【讨论】:

    • 感谢您的建议。我的公司决定不使用适用于 iOS 的 GCM,因为无论如何我们只使用下游消息传递,所以我目前无法测试您的解决方案。但是,对于它的价值,我从未尝试设置 priority 参数,所以它可能会为我解决它。
    • 我今天有机会看看这是否能解决我的问题,而且确实如此。只是想向任何有我问题的人确认这个字段有所作为。谢谢!
    • 谢谢。这也适用于我,但只是要注意。您需要 content_available:truepriority:high 才能使其工作。不过,这不会影响到 Android 设备的交付。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    • 1970-01-01
    相关资源
    最近更新 更多