离子/电容器 - PushNotiifcations - Android - “通知” + “数据” 消息
Posted
技术标签:
【中文标题】离子/电容器 - PushNotiifcations - Android - “通知” + “数据” 消息【英文标题】:Ionic / Capacitor - PushNotiifcations - Android - “notification” + “data” message 【发布时间】:2020-10-02 07:23:35 【问题描述】:我正在使用 PushNotifications Capacitor 插件和 FCM 发送通知,一切正常,直到我想在 android 上发送带有 notification
和 data
字段的推送通知。
我想要做的是发送带有通知的自定义数据并在应用恢复时使用通知。我使用PushNotifications.getDeliveredNotifications()
方法来获取简历上的通知,在ios 上我使用正确的data
获取所有通知,但在Android 上data
属性被以下对象替换:
body: "My Body",
data:
android.appInfo: "ApplicationInfo809371c 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 运气好吗? 【参考方案1】:您必须以这种格式创建消息
"message":
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":
"title":"Portugal vs. Denmark",
"body":"great match!"
,
"data" :
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
注意:notification
结构对于接收通知至关重要。您需要拥有title
和body
。这会显示在通知抽屉中。
data
可以根据您的要求定制。这将包含您在应用中需要的数据。
建议,保持你的有效载荷小。通过 FCM 发送绝对必要且安全的数据。
看这部分官方documentation
要在电容器中处理推送通知,您应该使用侦听器。这是official docs 的做法。
【讨论】:
这不是问题,我使用的正是您提供的格式。我也在使用适当的侦听器处理通知。我正在正确接收通知。当应用程序位于前台并且我点击通知时,我确实可以访问data
。当我在后台收到通知然后恢复应用程序(但不能通过点击通知)时,我无权访问 data
属性。在这种情况下,有没有办法获得通知data
?
我认为这与消息的方式有关handled on Android “在后台接收到的同时具有通知和数据负载的消息。在这种情况下,通知被传递到设备的系统托盘,并且数据负载在启动器 Activity 的 Intent 的附加内容中传递。”以上是关于离子/电容器 - PushNotiifcations - Android - “通知” + “数据” 消息的主要内容,如果未能解决你的问题,请参考以下文章