我使用的是react native v0.61.5以及最新版本的react nativehms-push(App)和hms-push-serverdemo-nodejs。
我的服务器应用程序能够同时发送通知消息和数据消息。
我不清楚的是必须如何实现消息才能实现:
-
当应用程序处于终止状态时:收到消息,声音响起,出现气泡,用户点击通知气泡,应用程序在打开时处理通知有效载荷
-
当应用程序处于终止状态时:收到消息,声音响起,出现气泡,用户在不点击通知气泡的情况下打开应用程序,应用程序在打开的同时处理通知负载
-
当应用程序处于后台状态时:收到消息,声音响起,出现气泡,用户在不点击通知气泡的情况下打开应用程序,应用程序在打开的同时处理通知有效载荷
-
当应用程序处于后台状态时:收到消息,声音响起,出现气泡,用户在不点击通知气泡的情况下打开应用程序,用户在打开的同时处理通知有效载荷
-
当应用程序处于前台状态时:收到消息,声音响起,气泡没有出现(没有气泡可点击),应用程序会突然处理通知有效载荷
我们遇到了一些困难来满足上面列出的所有这5个要求。我们必须从服务器端发送什么?数据消息还是通知消息?
我们还尝试使用:
let message = {
notification: {...},
android: {androidConfig..., notification: {foreground_show: [false|true]}},
token: new Array(pushDeviceToken)
};
两者:
let message = {
data: notification,
android: {androidConfig..., notification: {foreground_show: [false|true]}},
token: new Array(pushDeviceToken)
};
但似乎没有最好的选择。。。
还有一件事:foreground_show
似乎不适用于通知消息,当我保持应用程序处于打开状态并用foreground_show: true
发送通知消息时,不会出现气泡,应用程序也不会处理通知。
原因也可能是应用程序端的配置不正确。目前还不太清楚如何配置它,因为我们是HMS Push Kit的新手。
更新
如果应用程序处于终止状态,则可能无法接收推送数据消息通知。如果您确实需要使用数据消息,您可以申请高优先级数据消息的特殊权限。但同时,申请条件严格,可能很难通过
只有在用户单击通知后,才能触发通知消息。
因此,对于";如果应用程序处于前台状态,则通知消息不会被自动处理;您提到的场景,建议您首先使用服务器交互来覆盖前台场景。如果由于应用程序处于后台或终止状态而无法处理消息,请使用通知消息。
当应用程序处于终止状态时:收到消息,声音响起,出现气泡,用户点击通知气泡,应用程序在打开时处理通知有效载荷
在常见的通知消息中,您可以选择消息>通知>data以设置自定义参数(有效载荷)。打开应用程序时,可以调用onNotificationOpenedApp
事件来获取相关内容。
当应用程序处于终止状态时:收到消息,声音响起,出现气泡,用户在不点击通知气泡的情况下打开应用程序,应用程序在打开时处理通知有效载荷
建议应用程序在启动时通过与应用程序服务器的连接获取相关信息,并在启动时清除现有通知(本机Android功能)。
当应用程序处于后台状态时:收到消息,声音响起,出现气泡,用户打开应用程序而不点击通知气泡,应用程序在打开时处理通知有效载荷
建议应用程序通过与应用程序服务器的连接获取相关信息,并在启动期间清除现有通知(本机Android功能)。
当应用程序处于后台状态时:收到消息,声音响起,出现气泡,用户在不点击通知气泡的情况下打开应用程序,用户在未点击通知气泡情况下打开该应用程序,应用程序在打开时处理通知有效载荷
与上一个问题相同。
当应用程序处于前台状态时:收到消息,声音响起,气泡没有出现(没有气泡可点击),应用程序会突然处理通知有效载荷
您可以参考以下指南执行配置:https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides-V5/android-fgrd-show-0000001050040126-V5?ha_source=hms1