首页 > 解决方案 > iOS 离子应用程序没有收到 FCM 静默通知

问题描述

我有一个使用 FCM 进行聊天功能的 Ionic 3 应用程序。为了处理 FCM 消息,我使用了 cordova-plugin-fcm。

在我的应用程序中,我只使用静默模式(没有“通知”有效负载)。

它在安卓上运行良好。在 iOS 中,只有当它同时发送“数据”和“通知”有效负载时,我才会收到消息。如果我尝试使用静默模式,则根本不会传递消息。

对于 iOS,我使用 FCM,而不是 APN。

我发送 FCM 消息,如 cordova-plugin-fcm 的示例。

{
  "data":{
    "param1":"value1",
    "param2":"value2"
  },
    "to":"/topics/topicExample",
    "priority":"high",
}

标签: ioscordovaionic3firebase-cloud-messagingcordova-plugin-fcm

解决方案


这些东西在 Android 和 iOS 上的工作方式不同。您需要在通知中定义特定于 ios 的 apns.payload.aps 对象。

apns: {
  payload: {
    "aps" : {
        "content-available" : 1
     },
    "acme1" : "bar",
    "acme2" : 42
   }
}

您还需要在 plist 中允许远程后台通知。如果您使用的是 Xcode(最简单的),

  1. 在 Project Navigator 中,选择您的项目。

  2. 在编辑器中,选择您的 iOS 应用目标。

  3. 选择功能选项卡。
  4. 启用后台模式功能。
  5. 启用远程通知后台模式。

来源:https ://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html#//apple_ref/doc/uid/TP40008194-CH10-SW1


推荐阅读