You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

华为Push Kit API onRemoteMessageReceived无效 无法读取通知负载数据

你遇到的问题有两个核心诱因:

  • 你推送的是同时携带notification和data字段的通知栏消息,华为HMS Push Kit对这类消息的处理逻辑是:应用后台时系统直接渲染通知栏,点击后默认不会触发你注册的onRemoteMessageReceived回调,你缺少通知点击事件的监听逻辑
  • 你提到的官方教程d点覆写错误未解决,且当前Manifest配置缺少Push消息接收服务的注册,导致HMS服务拿到token后直接销毁,无法承接后续的消息回调

解决步骤

  1. 修正Manifest配置
    在你现有的application标签下追加Push服务注册配置:
<service
    android:name="com.huawei.hms.push.rn.plugin.HMSPushService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.huawei.push.action.MESSAGING_EVENT" />
    </intent-filter>
</service>
  1. 新增通知点击事件监听
    在你的App组件初始化逻辑里追加onNotificationOpenedApp事件监听,用来获取用户点击通知打开应用时的完整负载,包括通知的body内容和自定义data字段:
HmsPushEvent.onNotificationOpenedApp(result => {
  // 读取通知body内容
  console.log('通知正文:', result.notification.body);
  // 读取自定义data字段
  console.log('自定义参数:', result.data);
});
  1. 可选适配全场景接收
    如果你需要不管应用在前台还是后台都能主动捕获消息,可修改推送的payload结构:去掉外层的notification字段,所有通知内容和自定义参数都放到data字段里,这类纯数据消息会直接触发你已经注册的onRemoteMessageReceived回调,你可以在回调里自行渲染本地通知、处理业务逻辑。

  2. 修正推送payload语法错误
    你提供的推送JSON里token字段语法有误,存在多余的横杠、引号闭合错误,发送推送前需修正格式,避免推送下发失败。

内容的提问来源于stack exchange,提问作者Luca Parlapiano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 19:06:03