接入uni-app uni-push2.0通知栏可以收到离线推送消息 华为点击通知栏消息可以唤醒app但是监听不到click事件 小米点击通知栏消息不会唤醒app已授权相关权限
接入uni-app uni-push2.0通知栏可以收到离线推送消息 华为点击通知栏消息可以唤醒app但是监听不到click事件 小米点击通知栏消息不会唤醒app已授权相关权限
回复 d***@91jinrong.com: 用uni.onPushMessage试试
回复 套马杆的套子: uni.onPushMessage不行,才用的的这种方案
回复 d***@91jinrong.com: 先给hbx升级下,然后点完后没任何反应么?
回复 套马杆的套子: 是的,刚升级到4.8.7。还是没有效果
回复 d***@91jinrong.com: 我刚才也试了一下,也是红米,不过是k70 没问题呀,不过我是直接调用的云函数试的。你在线的有问题么?
回复 套马杆的套子: 我通过Dclound后台发送通知消息,配置Android离线配置:后续动作为启动应用之后就可以打开了。 我之前都是通过uni-admin后台推送的,就打不开应用。你可以下面评论我放的图。 但是我有个疑问,对于华为和小米,我想打开应用后拿到透传的消息,该怎么实现呢?
发送消息的两种方式

你直接用云函数试试吧,我没这么用过。云函数的方式不行的话我倒是可以帮到你
回复 套马杆的套子: 我找到问题了,很奇怪,我传递的payload中某个参数为一个以#结束的h5链接,就会有上面一系列问题,我把#删除掉就啥问题都没了,大佬能解释一下吗?
回复 d***@91jinrong.com: 这个问题确实存在,这个是个推的bug,很久前我提过,已经确认bug了,但是没能解决 你看下这个文章 https://ask.dcloud.net.cn/question/177029
针对uni-push2.0的离线推送问题,建议如下:
华为设备监听不到click事件:
检查是否在App的onLaunch生命周期中正确注册了uni.onPushMessage监听,确保代码在收到推送前已执行。参考推送消息监听文档。
小米设备无法唤醒App:
需确认已开启小米设备的「后台弹出界面」权限(路径:设置 > 应用管理 > 对应应用 > 权限管理)。这是小米/OPPO/vivo等设备的常见限制。
其他注意事项:
必须使用云打包后的APK测试,标准基座不支持离线推送
若问题仍存在,建议检查厂商推送配置(如华为需单独配置回执)
来源参考:
uni-push2.0文档
厂商推送配置
内容为 AI 生成,仅供参考
问题分析:
你描述的华为设备能唤醒App但监听不到click事件,而小米设备无法唤醒App,这通常与厂商通道配置、推送消息的点击行为设置或事件监听逻辑有关。以下是可能的原因和解决方案:
1. 华为设备问题(能唤醒但无click事件)
- 可能原因:
- 华为通道推送的消息中,
click_action参数可能未正确配置为打开应用内特定页面,或未触发uni.onPushMessage监听。 - 华为通道的
click_action需设置为3(打开应用内页),并在intent中携带参数,否则可能仅唤醒App而不触发事件。
- 华为通道推送的消息中,
- 检查步骤:
- 在uni-push2.0后台,确认华为通道消息的
click_action设置为打开应用内页面,并填写正确的intent(例如:#Intent;component=你的包名/io.dcloud.PandoraEntry;launchFlags=0x10000000;end)。 - 在App的
App.vue中,确保已正确监听事件:// App启动时初始化监听 onLaunch() { uni.onPushMessage((res) => { console.log('推送消息:', res); // 检查点击消息是否触发 if (res.type === 'click') { // 处理点击跳转逻辑 } }); } - 华为设备需确认已集成华为推送SDK(在uni-app项目中勾选并配置
manifest.json中的华为推送相关字段)。
- 在uni-push2.0后台,确认华为通道消息的
2. 小米设备问题(无法唤醒App)
- 可能原因:
- 小米通道未正确配置或权限未授权。
- 小米设备对后台唤醒限制严格,需检查自启动、省电策略等设置。
- 解决步骤:
- 确认小米通道配置:
- 在uni-push2.0后台填写小米的
AppID、AppKey、AppSecret。 - 在
manifest.json中正确填写小米推送的配置(包名、权限等)。
- 在uni-push2.0后台填写小米的
- 检查设备权限:
- 进入小米设备的 设置 > 应用管理 > 你的App,确保开启自启动、省电策略无限制、通知管理权限。
- 测试通道可用性:
- 在uni-push2.0后台选择“小米通道”发送测试消息,确认设备能否收到(可先测试在线推送)。
- 排查离线消息配置:
- 小米通道的离线消息需依赖厂商服务,确认设备已开启小米推送服务(系统设置中搜索“小米推送”)。
- 确认小米通道配置:
3. 通用排查建议
- 日志调试:
在uni.onPushMessage和uni.getPushClientId中添加日志,检查回调是否触发。 - 测试环境区分:
华为/小米设备需分别用对应通道推送测试,避免使用“全平台推送”混淆问题。 - 基础配置检查:
- 在
manifest.json中已启用uni-push2.0并勾选华为、小米推送模块。 - 项目已打包正式版(自定义基座或云打包),调试基座可能无法触发厂商通道。
- 在
4. 关键配置示例(manifest.json)
"distribute": {
"android": {
"permissions": [
"<uses-permission android:name=\"android.permission.INTERNET\"/>",
"<uses-permission android:name=\"com.huawei.android.launcher.permission.CHANGE_BADGE\"/>"
],
"plugins": [
{
"type": "push",
"huawei": {
"appid": "你的华为AppID"
},
"xiaomi": {
"appid": "你的小米AppID",
"appkey": "你的小米AppKey",
"appsecret": "你的小米AppSecret"
}
}
]
}
}


