return await uniPush.sendMessage({
"push_clientid": "ea948eb479cf7afafcb783eb1786b9bc", //填写上一步在uni-app客户端获取到的客户端推送标识push_clientid
"force_notification": true, //填写true,客户端就会对在线消息自动创建“通知栏消息”。
"title": "消息通知",
"content": "555555555555555",
"payload": '',
"badge": 1,
"category": {
"harmony": "SUBSCRIPTION",
"huawei": "SUBSCRIPTION",
"vivo": "SUBSCRIPTION"
}
})
- 发布:2025-12-04 15:14
- 更新:2025-12-08 17:08
- 阅读:172
【报Bug】鸿蒙无法接收来自uniPush.sendMessage推送的消息
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11专业版 24H2
HBuilderX类型: 正式
HBuilderX版本号: 4.85
手机系统: HarmonyOS NEXT
手机系统版本号: HarmonyOS 5.0.5
手机厂商: 华为
手机机型: Mate 60
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
sendMessage
sendMessage
预期结果:
推送成功
推送成功
实际结果:
推送失败
推送失败
bug描述:
在推送平台能推送,使用uniPush.sendMessage无法推送,uniPush.sendMessage返回结果
{
"data": {
"RASS_1204_3d4fbd920ee057b87fccfca284891479": {
"ea948eb479cf7afafcb783eb1786b9bc": "successed_online"
}
},
"errCode": 0,
"errMsg": "success"
}
4 个回复
Ask小助手
根据您描述的问题和提供的环境信息,结合知识库内容分析如下:
鸿蒙平台从HBuilderX 4.31开始支持uniPush推送(您当前使用4.85符合要求),但华为设备需要特别注意以下配置:
华为推送服务配置:请确认已在华为开发者后台开通推送服务,并正确配置了SHA256指纹证书
关键文件缺失:华为厂商必须上传
agconnect-services.json文件到uni-app后台的【uni-push/1.0/消息推送】-【配置管理】中,且包名需与客户端完全一致客户端监听逻辑:确保在
onLaunch中正确注册了推送消息监听:离线推送验证:在uni-push后台【故障排查】-【状态查询】中输入CID,检查是否返回了devicetoken。若未返回,说明厂商集成未成功
证书问题:云打包必须使用自有证书打正式签名包(debug包无法测试离线推送)
特别注意:鸿蒙平台不支持
app-plus相关API,所有推送配置必须按照uniPush 2.0文档进行设置。建议重新检查华为厂商配置并确保agconnect-services.json文件正确上传后重新云打包测试。亿企查 (作者)
1、已开通推送服务 2、json已经配置 3、必须注册推送消息监听吗?我没注册,我只要能推送到手机就行 4、查询中返回了devicetoken 5、我真机运行的在uni-push后台推送能收到,但是使用sendMessage推送无法收到
DCloud_uniCloud_JSON
你混淆了概念,看下 uni-push 入门文档中的名词解释
注:force_notification 仅支持 iOS Android,鸿蒙暂不支持。
亿企查 (作者)
通知栏未收到
2025-12-08 16:16
亿企查 (作者)
就是APP这边是同样的状态不论在前台还是后台(去除force_notification因素)都是uni-push后台推送能收到,使用sendMessage推送无法收到
2025-12-08 16:19
亿企查 (作者)
鸿蒙平台必须在APP.vue中的onLaunch中uni.onPushMessage接收推送消息才能收到通知栏推送,iOS、Android无需接收也能收到通知栏推送
DCloud_uniCloud_JSON
是的。请仔细阅读文档按流程一步一步骤走,你说的这一点在:uni-push 入门文档 - 客户端监听推送消息
2025-12-08 20:02
亿企查 (作者)
回复 DCloud_uniCloud_JSON: 文档中也未说明必须在onLaunch中注册uni.onPushMessage才能接收通知栏推送,而且在uni-push后台推送能收到,在我理解这完全就是个坑,另外iOS中uniPush.sendMessage推送中字段不能含有unll,一旦某个字段传参为空iOS在线推送就会导致app闪退,这种坑也没有说明
2025-12-10 08:36
DCloud_uniCloud_JSON
回复 亿企查: 1. 不写“必须”,用词“应当”表示存在例外情况,这建立在你对 uni-push 和应用生命周期的深入理解。文档原文:“监听推送消息的代码,需要在收到推送消息之前被执行。所以应当写在应用一启动就会触发的应用生命周期onLaunch中。”
2025-12-10 17:23
亿企查 (作者)
回复 DCloud_uniCloud_JSON: 我有深入理解了我还需要看文档?
2025-12-16 09:25
要回复问题请先登录或注册
公告
更多>相关问题