【问题标题】:GCM not sending notification when App ios shutdownApp ios关闭时GCM不发送通知
【发布时间】:2015-08-25 20:58:39
【问题描述】:

我正在使用 GCM 向 android 和 IOS 设备发送通知。

在 IOS 上,当应用程序处于活动状态或在后台运行时会收到通知。

但是,当应用程序关闭时,不会收到任何通知。 我通过直接联系 APNS 进行了测试,并收到了消息。所以设备上的配置似乎没问题。

以下是发送到 GCM 的消息示例:

{"notification":{
    "badge":"4",
    "body":"Test body",
    "sound":"default",
    "title":"Test title"
},
"collapse_key": "collapse_1",
"message_id": "1000003",
"content_available":true,
"to": "GCM TOKEN FOR DEVICE"
}

当应用程序在后台时正确接收到此消息,但在应用程序关闭时不正确。

我已经发送了应该发送到 APNS 的假定消息,直接发送到 APNS:

{"aps":{"alert":{"title":"Title","body":"Body"},"badge":5,
"sound":"default", "content-available":1}}

设备会收到此通知。

我错过了什么?授权 GCM 是否有特定的配置可以发送到 APNS?

非常感谢,因为我卡住了。

迈克尔

【问题讨论】:

标签: ios notifications google-cloud-messaging


【解决方案1】:

总是显示前台推送(即那些针对用户的推送)。如果应用程序被杀死,后台推送(即那些用于应用程序的推送)不会发送到应用程序。 您的推送负载不知道它是什么 - 它是一种混合物,它具有前台推送所具有的主体/标题/声音,但它也具有用于后台推送的内容可用。

确定您的推送应该是前台推送还是后台推送,然后相应地从您的有效负载中删除不必要的部分。

同样从 iOS 8.1(或 8.2,我忘记了)开始,只有当应用程序在前台或在后台并且设备正在充电时,后台推送才会立即传送到应用程序(注意,这包括通过usb连接到mac)。 如果应用处于后台且未充电,则推送可能需要几个小时才能传送到应用。

【讨论】:

    【解决方案2】:

    如果一个 iOS 应用程序被用户从切换器中杀死,它将不会收到推送通知。这是 Apple 故意实施的操作系统问题,因此无法解决。

    更多信息可以在这里找到(需要登录):https://devforums.apple.com/message/873265#873265

    【讨论】:

    • 我也试过这个用例。即使应用程序被手动终止,通知也会直接使用 APNS 显示。它看起来不再是 IOS 8 的情况。我认为它与 GCM APNS 更相关(因为绕过 GCM 时收到通知)。
    【解决方案3】:

    我们在尝试向 GCM 主题发送消息时遇到了这个问题,所有 android 设备都能正确获取消息,但应用程序被杀死的 ios 设备却没有。解决了在 datanotification 对象中发送消息的问题。不要忘记把优先级放在首位!!

    示例 Json:

    {"to":"/topics/xxx",
     "collapse_key":"",
     "data":{"message":"topic notification"},
     "notification":{"body":"topicotification"},
     "time_to_live":3600,
     "content_available":true,
     "priority":"high"}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-05
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2022-06-20
      • 1970-01-01
      相关资源
      最近更新 更多