在 HMS Push Kit 和 React Native 中收到通知时,如何获取应用自动处理的通知?

Posted

技术标签:

【中文标题】在 HMS Push Kit 和 React Native 中收到通知时,如何获取应用自动处理的通知?【英文标题】:How to get a notification automatically processed by the app when received in HMS Push Kit and React Native? 【发布时间】:2021-07-11 12:54:18 【问题描述】:

我正在使用 react-native v0.61.5 和最新版本的 react-native-hms-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 的新手,如何配置不是很清楚。

【问题讨论】:

【参考方案1】:

更新

如果应用程序处于终止状态,则可能无法接收推送数据消息通知。如果您确实需要使用数据电文,您可以申请High-priority data messages的特别许可。 但同时申请条件严格,可能很难通过。

只有在用户点击通知后才能触发通知消息。

因此,对于您提到的“通知消息如果处于前台状态,App不会自动处理”场景,建议您先使用服务端交互覆盖前台场景。如果由于应用程序在后台或 Kill-State 而无法处理消息,请使用通知消息。


当应用程序处于终止状态时:收到消息,响起并出现气泡,用户点击通知气泡,应用程序在打开时处理通知负载

在常见的通知消息中,您可以选择消息>通知>数据来设置自定义参数(payload)。打开应用时,可以调用onNotificationOpenedApp事件获取相关内容。

当应用程序处于终止状态时:收到消息,发出声音并出现气泡,用户打开应用程序而不点击通知气泡,应用程序在打开时处理通知负载

建议应用启动时通过连接应用服务器获取相关信息,启动时清除已有通知(Android原生功能)。

当应用程序处于后台状态时:收到消息,发出声音并出现气泡,用户打开应用程序而不点击通知气泡,应用程序在打开时处理通知负载

建议应用通过连接应用服务器获取相关信息,并在启动时清除已有通知(Android原生功能)。

当应用程序处于后台状态时:收到消息,发出声音并出现气泡,用户打开应用程序而不点击通知气泡,用户打开应用程序而不点击通知气泡,应用程序处理打开时的通知负载

同上一题。

当应用处于前台状态时:收到消息,声音响起并且没有出现气泡,(没有可点击的气泡),应用突然处理通知负载

您可以参考以下指南进行配置: https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides-V5/android-fgrd-show-0000001050040126-V5?ha_source=hms1

【讨论】:

感谢您的澄清。我们遇到了有关应用程序终止状态的问题。如果应用程序处于终止状态,则应用程序不会收到推送数据消息通知。相反,如果我们使用通知消息,它​​们会被 App 正确接收,但另一方面,如果通知消息处于前台状态,则 App 不会自动处理,因此我们不知道必须发送哪些消息(数据或消息)取决于应用程序的状态。您提供的链接仅适用于数据消息。 hi@shogitai,我更新了我的答案,请参考。

以上是关于在 HMS Push Kit 和 React Native 中收到通知时,如何获取应用自动处理的通知?的主要内容,如果未能解决你的问题,请参考以下文章

我的手机调用HMS Push Kit服务端API后收不到任何消息。 SDK版本为4.0.3.300

华为 Push Kit API - 从 rest Api 获取 Push Id

华为 Map Kit React Native 不渲染地图

转载超简单集成HMS ML Kit 人脸检测实现可爱2D贴纸

在 android studio 中无法获取华为 Map Kit 的 com.huawei.hms.location.LocationServices

超简单集成HMS ML Kit 人脸检测实现可爱贴纸