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
开发者您好,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. 前台接收与处理
您需要在应用启动时(例如在EntryAbility的onCreate中)注册一个 PushCallback 实现类。当应用在前台运行时,通过重写 PushCallback 的 onPushMessage 方法,可以接收到透传消息(即您提到的“普通通知消息”,通常指不直接展示在通知栏、用于应用内业务处理的消息),并在此方法内进行业务逻辑处理。
2. 后台/离线接收与处理
对于应用在后台或设备离线时下发的消息,处理方式如下:
- 核心机制:系统会为应用生成一个静默通知(或称为“代理通知”)。应用无需、也无法在后台主动监听或拉起进程。当用户点击此静默通知时,系统会启动您的应用(具体为
EntryAbility或您指定的Ability)。 - 数据获取:在目标
Ability(通常是EntryAbility)的onCreate或onNewWant生命周期回调中,通过参数Want对象来获取推送消息携带的数据。数据通常存储在Want的parameters属性中。 - 关键步骤:您需要在
module.json5配置文件中,为接收推送的Ability声明特定的Want过滤器(skills),并包含系统预定义的Action,例如"ohos.want.action.push",以便系统能够正确路由。
总结流程:
- 前台:注册
PushCallback,在onPushMessage中实时处理。 - 后台/离线:系统代理接收并生成静默通知 -> 用户点击通知 -> 系统启动应用对应
Ability-> 在Ability的onCreate/onNewWant中从Want内解析数据并处理。
因此,后台监听不是由应用主动实现的,而是由系统通过通知交互和Ability启动机制来触发的。请确保正确配置Want过滤器以接收启动意图。

