HarmonyOS鸿蒙Next中普通通知消息通过Push Kit通道直接下发,APP客户端可通过什么方式对数据进行接收及业务处理?

HarmonyOS鸿蒙Next中普通通知消息通过Push Kit通道直接下发,APP客户端可通过什么方式对数据进行接收及业务处理? 【问题描述】

普通通知消息通过Push Kit通道直接下发,APP客户端可通过什么方式对数据进行接收及业务处理?只有在前台时才能触发此监听,后台要想监听怎么处理?

图片

【问题现象】:需求问题

【版本信息】:开发工具版本:6.0、手机系统版本:mate6.0、Api语言版本:20


更多关于HarmonyOS鸿蒙Next中普通通知消息通过Push Kit通道直接下发,APP客户端可通过什么方式对数据进行接收及业务处理?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

开发者您好,Push Kit提供了推送语音播报消息

当用户终端收到您发送的语音播报消息时:

  • 若您的应用进程不在前台,应用会拉起子进程,名为通知扩展进程,Push Kit会将消息内容传递给通知扩展进程,您可以在该进程中自行完成业务处理后,返回自定义消息内容,Push Kit将弹出通知提醒。您需要在10秒内返回消息内容,否则Push Kit将默认展示原有的消息内容。
  • 若您的应用进程在前台,则不弹出通知提醒,您可以在应用进程中获取语音播报消息内容并自行完成业务处理。

可以看下语音播报消息是否满足您的需求,如果现在有问题,麻烦具体说下语音播报的场景。

更多关于HarmonyOS鸿蒙Next中普通通知消息通过Push Kit通道直接下发,APP客户端可通过什么方式对数据进行接收及业务处理?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


开发者您好,这边是需要消息推送后,应用在后台立即处理吗?这边是什么一个业务场景需要实时的去处理消息呢?

立即处理;场景为语音播报,

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17,

在鸿蒙(HarmonyOS)中,通过 Push Kit 通道下发的普通通知消息,客户端可通过以下方式接收和处理数据:

一、前台接收机制

当应用处于前台(用户正在操作)时,通过注册PushEvent监听器实现:

import push from '@kit.PushKit';
// 注册消息监听
push.on('pushEvent', (data) => {
  console.log('收到推送消息:', data);
  // 业务处理逻辑(如更新UI、存储数据等)
});

二、后台接收机制当应用处于后台/退出状态时,需通过透传消息 + ServiceExtensionAbility实现:

1.消息类型选择

使用透传消息(Data Message)而非普通通知消息。透传消息不会自动弹出通知栏,而是直接传递给应用。

2.创建后台服务

-在 module.json5中声明ServiceExtensionAbility:

"abilities": [
  {
    "name": "PushService",
    "type": "service",
    "backgroundMissions": true,
    "permissions": ["ohos.permission.KEEP_BACKGROUND_RUNNING"]
  }
]

-实现 ServiceExtensionAbility:

import ServiceExtensionAbility from '@ohos.app.ability.ServiceExtensionAbility';
import push from '@kit.PushKit';
export default class PushService extends ServiceExtensionAbility {
  onCreate() {
    push.on('pushEvent', (data) => {
      // 后台处理逻辑(如数据同步、本地存储等)
      this.processBackgroundData(data);
    });
  }
  private processBackgroundData( any) {
    // 执行业务操作(注意避免耗时任务)
  }
}

3.权限申请

在 module.json5中添加后台持续运行权限:

"requestPermissions": [
  {
    "name": "ohos.permission.KEEP_BACKGROUND_RUNNING"
  }
]

三、关键注意事项

1.消息类型区别 -普通通知消息:系统自动展示通知栏,仅前台可捕获内容 -透传消息:无通知栏展示,前后台均可通过代码捕获

2.后台限制 -后台服务每次运行时间不超过 2 分钟 -避免在后台执行复杂计算/网络请求,建议仅做数据存储或轻量操作

3.启动配置 -若需用户点击通知后启动应用,需配置通知的 WantAgent参数(普通通知消息适用)。

在HarmonyOS Next中,APP客户端通过订阅通知消息事件来接收Push Kit下发的普通通知。具体使用NotificationSubscriber类进行事件订阅,在onReceive回调方法中处理接收到的通知数据,并执行相应的业务逻辑。

在HarmonyOS Next中,当普通通知消息通过Push Kit通道直接下发时,APP客户端主要通过 PushManager 提供的回调接口来接收数据并进行业务处理。

1. 前台接收与处理

您需要在应用启动时(例如在EntryAbilityonCreate中)注册一个 PushCallback 实现类。当应用在前台运行时,通过重写 PushCallbackonPushMessage 方法,可以接收到透传消息(即您提到的“普通通知消息”,通常指不直接展示在通知栏、用于应用内业务处理的消息),并在此方法内进行业务逻辑处理。

2. 后台/离线接收与处理

对于应用在后台或设备离线时下发的消息,处理方式如下:

  • 核心机制:系统会为应用生成一个静默通知(或称为“代理通知”)。应用无需、也无法在后台主动监听或拉起进程。当用户点击此静默通知时,系统会启动您的应用(具体为EntryAbility或您指定的Ability)。
  • 数据获取:在目标Ability(通常是EntryAbility)的 onCreateonNewWant 生命周期回调中,通过参数 Want 对象来获取推送消息携带的数据。数据通常存储在Wantparameters 属性中。
  • 关键步骤:您需要在module.json5配置文件中,为接收推送的Ability声明特定的 Want 过滤器(skills),并包含系统预定义的Action,例如 "ohos.want.action.push",以便系统能够正确路由。

总结流程

  1. 前台:注册PushCallback,在onPushMessage中实时处理。
  2. 后台/离线:系统代理接收并生成静默通知 -> 用户点击通知 -> 系统启动应用对应Ability -> 在AbilityonCreate/onNewWant中从Want内解析数据并处理。

因此,后台监听不是由应用主动实现的,而是由系统通过通知交互和Ability启动机制来触发的。请确保正确配置Want过滤器以接收启动意图。

回到顶部