调用推送接口返回成功,手机端未收到通知栏消息,该如何自检?

发布者:HarmonyOS SDK
发布于:2022-05-12 09:36

一、问题场景

某位开发者调用API接口推送消息,请求返回:{"code": "80000000","msg": "Success","requestId": "16233092**287602020201"}。返回"code": "80000000"表示该请求是成功的,但是手机端未收到通知栏消息。

二、原因分析排查

首先可以排查消息体中是否存在以下几种字段使用不当的情况:

情况1: validate_only的值是true

validate_only字段控制当前是否为测试消息,测试消息只做格式合法性校验,不会推送至用户设备。也就是说validate_only值为true时,即使请求返回"code": "80000000",服务器也不会给端侧推送消息。

 

情况2:没有使用notification字段

消息体中有message.data,没有message.notification和message.android.notification,消息类型为透传消息。透传消息透传给应用,不会在通知栏展示。

 

情况3:foreground_show的值是false

foreground_show控制前台应用的通知处理,当该值被设置为“false”且应用在前台时,通知消息的全部内容将会通过onMessageReceived(RemoteMessage message)方法传递给应用,不展示通知栏消息。

 

 

前台应用的通知处理参考文档

如以上3种情况都不符合,可使用Push自助分析功能查询消息发送情况:

登录AppGallery Connect网站,点击“我的项目”,在项目列表中找到自己的项目,通过“增长 > 推送服务 > 自助分析(Beta)”页签进入。

 

 

输入发送消息时的“token”和推送服务返回的“requestId”后,点击查询按钮即可查看消息发送情况。

 

 

这上面的消息记录更新的比较慢,如果未查询到消息处理,请在推送请求半小时后再查询。Push自助分析参考文档

 

如果按以上排查步骤仍未能找到原因,请查看技术支持文档。

 

了解更多详情>>

 

访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHubGitee

 

关注我们,第一时间了解 HMS Core 最新技术资讯~


声明:该文观点仅代表作者本人,转载请注明来自看雪