hsfHarmonyOS 5
uniapp离线推送收不到
橙动创意“打开 App 才收到”通常说明消息链路到了应用侧或厂商侧,但没有走成系统离线通知展示链路。建议先把 UniPush 封装和华为 Push Kit 原生能力拆开验证。
排查顺序:
1. 确认服务端发送的是通知类消息,不是只给前台处理的透传数据。
2. 确认包名、appId、证书指纹、Push Token 都来自当前鸿蒙包,不要混用 Android 配置。
3. 用最小原生 Demo 直接接华为 Push Kit 发一条离线通知,验证厂商通道本身是否正常。
4. 如果需要后台轻量处理,再看通知扩展能力;不要把必须前台运行的逻辑放在普通页面生命周期里。
5. 检查通知权限、通知渠道/分类、设备省电限制和应用是否被用户关闭通知。
如果原生 Push Kit 离线正常而 UniPush 不正常,问题就收敛到 UniPush 的鸿蒙适配层或服务端消息类型映射。
FIEforever
看看这个帖:
https://developer.huawei.com/consumer/cn/forum/topic/0202180873607282560
1、设置actions参数完成点击消息进入应用内页示例(若skills中添加了uris参数,则uris内容需为空)。
2、skills中必须同时设置actions参数,actions参数为空。
3、module.json5文件中的skills标签下可以同时存在多个skill对象,每个对象对应一种能力。
若需要同时设置推送消息跳转能力和其他跳转能力(如NFC跳转、浏览器跳转等),需要在skills数组中创建不同的skill对象,分别映射对应的能力)。
大雷神我这边再补一个最小验证路径:先绕开 UniPush 的二次封装,确认华为 Push Kit 自身的“离线通知/通知扩展”链路是否正常。只在打开 App 后才收到,常见原因是服务端发成了透传/前台消息,或者端侧没有按通知扩展消息处理。
如果要后台收到后做轻量处理,可以加通知扩展能力:
import { RemoteNotificationExtensionAbility, pushCommon } from '@kit.PushKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
export default class RemoteNotificationExtAbility extends RemoteNotificationExtensionAbility {
async onReceiveMessage(info: pushCommon.RemoteNotificationInfo): Promise<pushCommon.RemoteNotificationContent> {
hilog.info(0x0000, 'push', 'receive extension message');
return {
title: '新消息',
text: '请打开应用查看详情',
badgeNumber: 1,
wantAgent: { abilityName: 'EntryAbility', parameters: { from: 'push' } }
};
}
}
同时让服务端先发 payload.notification,至少带 title/body;如果是通知扩展消息,要确认 push-type 与端侧扩展匹配。RemoteNotificationExtensionAbility 是独立轻量子进程,生命周期默认小于 10 秒,不能唤醒主进程或弹窗,所以不要在里面做重任务。依据:华为官方《发送通知消息》《RemoteNotificationExtensionAbility》。
空瞳
这个现象建议先区分“前台在线消息”和“系统离线通知”。只在打开 App 时收到,通常说明 token/服务端发送链路基本通,但消息没有走系统离线展示链路,或者端侧只做了前台回调。
可以按下面顺序排查:
1. 端侧启动后记录 Push Kit token,确认 getToken 成功,并把最新 token 同步到后端。若 getToken 抛出非法应用身份、Push 权益未开通、网络不可用、设备不支持等错误,需要先处理 token 链路;token 更新后后端也要使用新 token。
2. 看 UniPush 厂商通道实际下发给华为侧的是“通知消息/远程通知”还是“透传数据”。如果是透传数据,只在应用进程存活或对应接收能力配置正确时才容易收到;如果目标是离线后系统通知栏展示,服务端 payload 要按通知消息发送,title/body、点击参数等字段要完整。
3. 端侧接收能力要和消息类型匹配:前台在线消息可用 pushService.receiveMessage(...) 验证;后台/扩展接收需要配置 PushExtensionAbility 或 RemoteNotificationExtensionAbility,并实现 onReceiveMessage。不要只用前台 receiveMessage 的结果来判断离线推送是否正常。
4. 检查通知开关和订阅状态。通知关闭时相关接口可能返回 Notification switch off,系统也不会展示通知;同时确认应用未被限制通知、后台运行或省电策略没有影响测试。
5. 做三组对比测试:App 前台、App 退到后台、进程被清理或锁屏。如果只有前台成功,重点看厂商通道 payload 类型、UniPush 华为通道配置是否真正生效,以及 HAP 中 Push 相关 extension 配置是否被打包进去;如果后台成功但清理后失败,再重点看消息类型是否为可离线展示的通知消息。
- 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
- 如您发布的内容为转载内容,请注明内容来源。
我要提问题
HarmonyOS 使用core speech kit的语音识别不准(API12+)
HarmonyOS 如何使用离线地图 (API12+)
HarmonyOS 如何实现离线地图功能 (API12+)
HarmonyOS 如何实现对离线组件截长图(API12+)
uniapp收不到离线推送的消息
uni-app如何接入uni-push
HarmonyOS 消息推送,设备无法收到通知(API12+)
HarmonyOS push推送,用户接收不到推送消息,错误码1000900012(API12+)




































苏公安网备 32011402010933号