【问题标题】:Ionic / Capacitor - PushNotiifcations - Android - “notification” + “data” message离子/电容器 - PushNotiifcations - Android - “通知” + “数据” 消息
【发布时间】:2020-10-02 07:23:35
【问题描述】:

我正在使用 PushNotifications Capacitor 插件和 FCM 发送通知,一切正常,直到我想在 Android 上发送带有 notificationdata 字段的推送通知。

我想要做的是发送带有通知的自定义数据并在应用恢复时使用通知。我使用PushNotifications.getDeliveredNotifications() 方法来获取简历上的通知,在iOS 上我使用正确的data 获取所有通知,但在Android 上data 属性被以下对象替换:

{
  body: "My Body",
  data: {
    android.appInfo: "ApplicationInfo{809371c app}",
    android.bigText: "My Body",
    android.progress: 0,
    android.progressIndeterminate: false,
    android.progressMax: 0,
    android.reduced.images: true,
    android.showChronometer: false,
    android.showWhen: true,
    android.template: "android.app.Notification$BigTextStyle",
    android.text: "My Body",
    android.title: "My Title",
    gameDndOn: false,
    specialType: "",
    topFullscreen: false,
    groupSummary: false,
    id: 0,
    title: "My Title"
  }
}

我在 Android 应用程序的 FCM 文档中看到,如果通知和数据字段都存在并且应用程序在后台,则通知会出现在系统托盘中,数据会出现在 Intent 的附加部分中。

当我点击通知时,我正在获取正确的数据,但在我的情况下,我希望在不点击通知的情况下在简历中获取该数据。

在这种情况下有什么方法可以获取这些数据吗?

【问题讨论】:

  • Mateusz 运气好吗?

标签: android ionic-framework push-notification firebase-cloud-messaging capacitor


【解决方案1】:

您必须以这种格式创建消息

{
"message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
      "title":"Portugal vs. Denmark",
      "body":"great match!"
    },
    "data" : {
      "Nick" : "Mario",
      "Room" : "PortugalVSDenmark"
    }
  }
}

注意:notification 结构对于接收通知至关重要。您需要拥有titlebody。这会显示在通知抽屉中。

data 可以根据您的要求定制。这将包含您在应用中需要的数据。

建议,保持你的有效载荷小。通过 FCM 发送绝对必要且安全的数据。

看这部分官方documentation

要在电容器中处理推送通知,您应该使用侦听器。这是official docs 的做法。

【讨论】:

  • 这不是问题,我使用的正是您提供的格式。我也在使用适当的侦听器处理通知。我正在正确接收通知。当应用程序位于前台并且我点击通知时,我确实可以访问data。当我在后台收到通知然后恢复应用程序(但不能通过点击通知)时,我无权访问 data 属性。在这种情况下,有没有办法获得通知data
  • 我认为这与消息的方式有关handled on Android “在后台接收到的同时具有通知和数据负载的消息。在这种情况下,通知被传递到设备的系统托盘,并且数据负载在启动器 Activity 的 Intent 的附加内容中传递。”
猜你喜欢
  • 2021-03-20
  • 1970-01-01
  • 2021-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-25
  • 2020-07-09
相关资源
最近更新 更多