当前位置: 首页 > 后端技术 > Java

【FAQ】推送服务常见问题及解决方法

时间:2023-04-01 15:39:08 Java

1.推送成功后没有收到消息,推送返回:{"message":"success","re??questID":"1523868*2842718","re??sultcode":0}故障排除步骤:1、网络不稳定,切换到稳定的网络进行测试;2、检查手机是否是EMUI8.0.0系统,如果是早期的EMUI8.0,尝试升级(在手机会员服务-服务-升级尝鲜),或者用targetversion26以下编译避免这个问题。EMUI版本太低,低于4.1不支持;3、检查终端token是否正确,推送到联盟后台。如果联盟后台推送失败,token过期,或者手机配置有问题;检查token并设置话机权限,如果推送成功,之前的失败是调用接口时参数配置错误导致的;4.如果接收不到通知消息,检查通知payload中msg和appPkgName配置是否正确;5、检查华为移动服务的缓存问题,尝试清除数据和缓存,停止华为移动服务;6、查看CP是否使用旧版本的Push。旧版SDK会有明显的消息延迟,无法接收推送。您需要尽快切换到新版本;7.收集日志(详见日志抓取方法),参考推送日志解读查看。2、gettoken返回0,无法进入onToken函数,无法接收广播。1、自定义Receiver是否继承华为PushReceiver;2、AndroidMainfest配置是否完整,请对照现网配置检查;3.保存日志并发送过来;4.清除华为移动服务和应用的缓存和数据,重启手机。进入应用程序并重试;5.如果日志中出现gettoken:end0com.huawei.android.pushagent.PushLog2551:[ReceiverDispatcher-230]responseRegisterTokenFAILED:1(android/PushCommandProcessor.java:557),说明这里是HuaweiMobileServices的状态正常,但是请求服务器异常。查看联盟推送状态是否为“激活”,状态为激活,为错误。如果问题没有解决,重复步骤4准备日志输出,运行测试应用,打印日志。3、如何在华为开放平台查看消息是操作消息还是通知系统消息?我们推送的时候包含了importance字段,但是不知道这个字段是否会生效。华为的通知消息以提醒的方式显示消息的类型。重要性字段只有在申请了自分类权限后才会生效。自分类权限申请参考:自动权限申请4.离线角标不显示。1、首先要确认角标是用什么方式使用的。第一种方法:华为提供的在消息体中添加字段的方法。该方法无论应用在线还是离线,角标都会正常显示。参考资料:桌面角标第二种:在客户端代码中设置角标。在这种情况下,应用程序处于离线状态,因为收到的离线消息可能没有被处理,所以没有添加角标。参考资料:华为桌面徽章开发指南2、确认使用的徽章方法后进行检查。如果使用第一种,确认离线消息的消息体是否有add_num和set_num字段;如果使用第二种,需要在收到离线消息后确认是否调用添加下标的代码。5.收货问题的处理。1、应用设备不在线:损坏、断开连接、关机、不在服务器等(大多数情况下);2、用户关闭推送权限;3.回执只会发送一次,网络异常或服务器异常时请求失败。.6、CP使用https://api.push.hicloud.com域名。SDK2.0网址:https://api.push.hicloud.com/...?ha_source=hms1SDK3.0+网址:https://push-api.cloud.huawei...[appId]/messages:send?ha_source=hms1SDK2.0URL是2.0版本使用的接口。可以用最新版本替换。同时更新SDK版本为6.7.0。参考最新文档做迁移工作。迁移完成后,您可以测试推送功能是否正常。是及时处理异常。请参考SDK版本更新说明:版本更新说明。更多详情>>访问华为开发者联盟官网获取开发指导文档华为移动服务开源仓库地址:GitHub、Gitee关注我们,第一时间了解HMSCore最新技术资讯~