HarmonyOS鸿蒙Next中消息推送后手机未收到消息提示怎么处理
HarmonyOS鸿蒙Next中消息推送后手机未收到消息提示怎么处理
问题现象
使用Push Kit(推送服务)提供的接口推送消息,但是客户端没有消息提示。
预期效果:推送消息后,客户端能及时收到消息提示,例如出现消息弹框。
实际效果:推送消息后,客户端未收到消息提示,或者没有及时收到消息,未出现消息弹框。
背景知识
Push Kit中,由于消息权益不同,不同的消息类型对应的提醒方式、推送数量限制等会有差异,如下:
消息类型 | 提醒方式与消息展示位置 | 推送数量限制 |
---|---|---|
服务与通讯 | 锁屏、铃声、振动等 | 与资讯营销消息、其他场景化消息合计不超过应用每日可向每设备发送的最大消息数量3000条。 |
资讯营销 | 静默通知,仅在通知中心展示消息 | 根据应用类别限制每日推送数量,单个应用每日每设备推送数量为2条或5条。 |
- Push Kit(推送服务):Push Kit(推送服务)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道。
- 申请推送场景化消息权益:Push Kit支持多种场景化消息类型,其中部分场景化消息类型需要开发者申请特殊权益才能正常发送。
- 请求通知授权:应用需要获取用户授权才能发送通知。
- 开发消息回执:消息回执是指Push Kit服务端将消息推送到用户终端之后,端侧会给Push服务端反馈送达结果。与此同时,Push服务端会将消息送达状态以回执消息形式发送给应用回执服务端,方便开发者获取消息下达端侧后的状态,定位问题等。
- 发送消息通知:通知消息通过Push Kit通道直接下发,可在终端设备的通知中心、锁屏、横幅等展示,用户点击后拉起应用。
定位思路
对于消息推送异常这类问题,需要先确认实际场景,客户端是否真的未收到消息,还是收到消息后没弹出消息框。
如果是营销消息,此类需要达到一定数量后才会推送,容易被忽略,可以在在消息中心查看是否收到。如果是非营销消息,消息推送参数配置错误会导致消息推送失败,因此需检查配置参数。
解决方案
根据消息推送异常实际场景,可按照下列步骤定位。
-
用户实际收到了消息 1.1 检查是否是静默通知 当收到消息时,由于静默通知仅在通知中心展示,并不会弹框提示,需要去通知中心查看。通知中心如下图,可以查看对应消息。
-
用户未收到消息 2.1 检查push token是否正确 打开AGC平台,选择我的项目,然后选择推送服务,在自主分析里面,输入requestId和token,系统会自动分析消息推送失败的可能原因。 2.2 检查是否属于营销通知 对于消息很久才收到(约10分钟),导致消息被忽略,误以为没收到的场景。对应的消息通常属于营销通知,只有当消息达到一定数量,才会分批一起推送,所以会有延时。如果不想延迟,则可以考虑申请通知消息自分类权益。 2.3 如涉及自分益权限,检查自分益权益是否已申请,并且打开自分益开关 涉及自分益权限 参考文档。 2.4 是否受到消息频控 可以在消息发送请求体,设置pushOptions.testMessage为true,发送测试消息。测试消息的限制为每天1000条。 2.5 检查配置文件 排除如上描述情况,确认消息确实没有收到,那么大概率是消息推送失败。此时需要检查module.json5中skills配置是否正确。src/main/module.json5文件skills标签中actions或uris的值不可同时配置,具体如下: (1)设置action参数点击消息进入应用页面(若skills中添加了uris参数,则uris内容需为空)
{ "actions": [ "com.test.action" ] }
(2)设置uris参数点击消息进入应用页面(skills中必须同时设置actions参数,actions参数需为空)
{ "actions": [ "" ], "uris": [ { "scheme": "https", "host": "www.xxx.com", "port": "8080", "path": "push/test" } ] }
详细参考官网指南。
总结
Push Kit消息下发成功后,可能会因为消息频控、通知开关未打开等原因,导致端侧消息未展示。通常可以从消息通知是否打开、消息分类权益是否申请、配置文件中skills标签是否正确这几个方面进行排查。同时,建议开发消息回执,Push服务端会将消息送达状态以回执消息形式发送给应用回执服务端,方便获取消息下达端的状态,通过回执状态码定位问题。
更多关于HarmonyOS鸿蒙Next中消息推送后手机未收到消息提示怎么处理的实战教程也可以访问 https://www.itying.com/category-93-b0.html
可能是通知权限未开启或应用未在后台运行。检查设置中的通知管理,确保相关应用的通知权限已开启。同时,确认应用在后台未被限制或关闭。若问题依旧,可尝试重启设备或更新系统至最新版本。
更多关于HarmonyOS鸿蒙Next中消息推送后手机未收到消息提示怎么处理的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
-
首先确认消息类型:
- 如果是资讯营销类消息,默认是静默通知,需到通知中心查看
- 服务与通讯类消息应有弹窗提示
-
基础检查:
- 确保设备通知权限已开启
- 检查Push Token是否正确有效
- 验证网络连接正常
-
配置检查:
- 检查module.json5中的skills配置:
- actions和uris不能同时配置
- 确保跳转参数设置正确
- 检查module.json5中的skills配置:
-
高级排查:
- 在AGC平台使用自主分析工具检查推送失败原因
- 检查是否达到消息频控限制
- 确认是否已申请自分益权益(如需要)
-
测试建议:
- 使用testMessage=true发送测试消息
- 实现消息回执功能获取推送状态
如果以上步骤仍无法解决,建议收集以下信息进一步分析:
- 推送请求ID(requestId)
- 设备Token
- 消息发送时间戳
- 设备型号和系统版本
注意营销类消息存在10分钟左右的延迟推送机制,这是正常现象。