无法在 iOS [Firebase] 中接收通知

Cannot receive notification in iOS [Firebase]

我正在使用 Firebase 云消息传递并为我的通知创建一个 cron,而不是使用 Firebase 控制台。我想知道我是否可以使用与 android 相同的 json。目前我的 android 设备收到我发送的通知,但在我的 iOS 中它没有。我想知道是否因为我在 notification 对象中使用的某些参数,例如 icon 仅适用于 android 平台,它会影响结果吗?

我的 post 请求看起来像这样

{
    "registration_ids" : $ids,
    "notification" : {
      "body" : "great match!",
      "title" : "Portugal vs. Denmark"
      "icon" : "myicon"
    },
    "data" : {
      "Nick" : "Mario",
      "Room" : "PortugalVSDenmark"
    }
} 

更新

按照建议,我为我的 iOS 和 Android 创建了两个不同的 cron,在我的 iOS 中我只是删除了 [=37= 中的 icon 参数].但我仍然没有收到任何通知。

同样在 Capabilities Tab -> Push Notifications 下,我切换它 ON,也在 Background Modes-> Remote notifications 中。

在我的 json 中,我添加了 aps 对象

'aps' => array(
                'alert' => $messageText,
                'badge' => $badge,
                'sound' => 'default',
                'id' => $id
            ),

您可以对 android 和 ios 使用相同的 json。 Firebase Cloud Messaging 将使用每个平台的相关参数

示例:

  • icon 将从针对 iOS 的消息中删除,因为该平台不支持更改图标。

  • sound 应该是带扩展名的文件名(ios 需要扩展名)。 Firebase 将在针对 android 设备时删除扩展程序。

关于未传送到 iOS 的消息,请尝试增加 priority 参数。
https://firebase.google.com/docs/cloud-messaging/http-server-ref#downstream-http-messages-json

当 ios 应用程序在后台运行时 Firebase 使用 APNs 传递消息,而 APNs 经常延迟没有高优先级的消息。

如果这不起作用,请检查您的 APNs 证书配置。

要在 iOS 上运行 Firebase 推送,您必须将 priority 设置为 high。参考: