【FAQ】推送服务常见问题及解答

发布者:HarmonyOS SDK
发布于:2023-11-22 10:25

目录

1、报错6003解决方案。

2、推送成功收不到消息。

3、Gettoken返回0,无法进入onToken函数,无法收到广播。

4、如何在华为开放平台查看消息属性,推送的时候带了importance字段,但是不能确定该字段是否生效。

5、离线角标不显示。

6、关于回执问题处理。

7、CP关于https://api.push.hicloud.com域名的使用问题。

8、在AGC平台创建受众群组进行推送,发送量为0。

9、安全扫描扫除漏洞问题。

Q1:报错6003解决方案。

1、请您检查下在客户端生成的指纹证书是否和AppGallery Connect网站上配置的“SHA256证书指纹”一致。

如果确认指纹证书没错:

2、请重新下载agconnect-services.json文件(确保是正确下载同一appid的文件,并存放在应用级app目录下),清除HMS Core缓存后重新尝试(应用-应用设置-搜索hms core,清理hms core缓存)。

3、如果还是不行,请复现问题,抓取push日志。

日志提取办法:

1)使用adb连上手机后,执行下面命令:

adb logcat -v threadtime 1> D:\xxxx.log

  1. 尝试复现您遇到的问题场景。

  2. 等待几十秒,按快捷键“Ctrl+C”完成日志抓取。

生成日志后注意看下日志记录的时间段需要包含复现问题的时间点。

Q2:推送成功收不到消息,推送返回{"message":"success","requestID":"1523868*****2842718","resultcode":0}

排查步骤:

1、网络不稳定,切换稳定网络进行测试。

2、检查手机EMUI版本、小于4.1也是不支持的。

3、检查终端token是否正确,在联盟后台进行推送,如果联盟后台也推送失败则是token已失效、或者手机配置有问题,进行token检查和手机权限设置。如果能推送成功则,调用接口时参数配置错误导致。

4、检查CP是否使用的是老版本的push,老版本sdk会出现消息延时很明显的情况,以及收不到推送,需要尽快切换到新版本。

5、搜集日志(详情见日志抓取办法),参考push日志解读进行排查。

Q3:推送收不到消息,如何排查?可能是什么原因造成?

1、您是否申请了自分类权益,华为目前有咨询营销类消息限制,没有使用自分类权益默认是资讯营销类消息,受到营销通知管控。

您可以通过申请自分类权益,来使用服务与通讯类消息。点击查看自分类权益申请消息分类标准

2、如果您目前只是需要进行测试,发测试消息的话在推送消息时可以设置target_user_type参数为1。每个应用每日可发送500条测试消息且不受每日单设备推送数量上限要求。可参考下行消息API

或者您在网站推送时点击“效果测试”发送测试消息。

3、您也可以通过推送requestID和token在自助分析平台自助查询原因。

4、如果您这边还是无法定位问题,可以联系技术支持反馈问题。

Q4:如何在华为开放平台查看消息是属于运营消息还是通知系统消息?推送的时候带了importance字段,但是不能确定该字段是否生效?

华为的通知消息通过提醒方式来判断该条消息的类型。category字段只有在申请自分类权益后才能生效,用于标识消息类型,importance字段可以用于本地通知级别的设定。

具体介绍和申请自分类权益请参考链接

Q5:离线角标不显示。

首先确认通过哪种方式使用角标。

第一种:华为提供的消息体加字段方式,这种方式不管应用在线或者离线,角标都会正常展示。

第二种:您在客户端代码设置角标,这种情况,应用离线的情况可能是没有对收到的离线消息进行处理所以角标没有加上。请参考华为桌面角标开发指导书

如果使用了第一种,请确认离线消息的消息体是否有add_num和set_num字段;如果使用第二种,请确认收到离线消息之后是否调用代码加上角标。

Q6:关于回执问题处理。

1.应用设备不在线(损毁,断网,关机,不在服务器等情况)是没有回执的,一般这种情况占比较大。

2.用户关闭推送权限也是没有回执的。

3.因为回执只会发送一次,所以在网络异常或者服务器异常等情况导致的请求失败也是没有回执的。

Q7:CP关于https://api.push.hicloud.com域名的使用问题。

SDK 2.0 URL:https://api.push.hicloud.com/pushsend.do

SDK 3.0+ URL:https://push-api.cloud.huawei.com/v1/[appId]/messages:send

https://api.push.hicloud.com/pushsend.do 这个是2.0版本使用的接口,需要替换为最新的,替换的时候请及时更新SDK版本到最新版本6.12.0,参考最新的文档做好迁移工作,同时迁移完成之后请测试一下推送功能是否正常使用,有异常麻烦及时处理。可参考SDK版本更新说明

Q8:在AGC平台创建受众群组进行推送,发送量为0。

创建受众群组首先需要接入分析服务,并且当天开通创建的受众群组24小时后才会生效。

Q9:安全扫描扫除漏洞:com.huawei.hms.support.api.push.service. HmsMsgService Service组件的最小化特权是指组件只能自身调用,其他应用无权访问,即组件不导出。Service执行的操作比较敏感,比如更新数据库、提供事件通知等,如果设置了导出权限,可能被系统或者第三方的App直接调出并使用。Service导出可能导致拒绝服务攻击,程序功能被第三方恶意调用等风险。

Service内部对调用方有校验,即使被攻击了,也不会处理。

该服务定义在pushsdk子进程中,供应用集成。业务场景为:Push在非华为手机上,需要由HMS通过bindSevice方式发送通知栏或者透传消息给App,由于HMS非系统应用,故该service无法定义具体应用级别的权限,同时在该服务内部有对调用方做权限校验,若校验非HMS拉起,则直接丢弃不处理。在华为手机上该服务无使用场景。

正常业务场景启动方式:bindService。该子进程本身只是做通知栏和透传消息解析使用,没有其他任何用处,同时也不是常驻进程。即使频繁ANR后该子进程会被强制关闭,对主进程也没有任何影响。即使不ANR,资源紧张时,该进程也会被android回收强制关闭。

了解更多详情>>

访问华为推送服务联盟官网



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