ITPub博客

首页 > 移动开发 > ANDROID > 【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(2)

【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(2)

原创 ANDROID 作者:HarmonyOS SDK 时间:2024-04-09 11:15:41 0 删除 编辑

1.问题描述:


开发服务端推送,客户端能收到离线推送,但是推送收到的通知只能从手机顶部下拉看到,无法收到一个顶部的弹框。请问是什么原因?


解决方案:


可能原因一: 消息提醒的方式与消息类别有关,比如:    a. 服务与通讯类的提醒方式为:锁屏、铃声、振动。    b. 资讯营销类的消息提醒方式为:静默通知,仅在通知中心展示消息。 当前开发者的消息类型应该是资讯营销类的消息,消息提醒方式与消息类别的对应关系请参考: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/push-noti-classification-0000001727885246#section15216442535。 


可能原因二: 如果发送的消息确实是服务与提醒类的消息 ,那么可以通过申请自分类来实现,请参考: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/push-noti-classification-0000001727885246#section0965171625420。 


可能原因三: 当前横幅通知只有服务与提醒类别下的“IM”和“VOIP”消息才支持,请参考: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/push-noti-classification-0000001727885246#section4972113418541。


2.问题描述:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/push-servicenotification-0000001727770540 ,在serviceNotification.requestSubscribeNotification接口参数中entityIds实体id列表,这个列表的数据是怎么确定的?


解决方案:


entityIds是订阅消息的模板ID,请参考消息订阅页面中的列表信息,对应文档: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/push-alert-subscribe-0000001737579632#section170214152。


3.问题描述:


调用pushService.getToken()报错“dlopen_impl load library header failed for /system/lib64/module/hms/core/push/libpushservice.z.so”。 大部分手机可以调用,某些设备不行。


解决方案:


通过现有日志分析,是系统底层的一个已知问题造成的。因NOH在单框架不再演进,建议伙伴切换ALN。


4.问题描述:


为什么配置uris会导致收不到HarmonyOS推送?如果要通过配置uris实现类似iOS的url scheme功能,该怎么做才能不影响推送?


解决方案:

  1. uris和action可以同时存在。不过actions和uris不能在同一个对象中,需要在不同的对象中才可以。

  2. 以首页的skills为例,下方的skills配置是可以正常收到消息的且点击也没有问题:


"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home",
"action.ohos.push.listener",
]
},
{
"uris": [
{
"scheme": "https",
"port":"8080",
"host": "com.xx.pushsvc.impl",
"path": "notify_detai"
}
]
}
]

5.问题描述:


为什么后台推送透传消息(push-type: 6),自助查询提示”其他错误,建议您联系技术支持“?


解决方案:


可能原因:服务端推送使用的token与设备保存的token不一致,大多数情况是因为您的测试机重新获取了新的token,但是他们还使用旧的推送导致的。 解决方法:重新获取最新token进行推送。


6.问题描述:


获取Push token时,调用const pushToken: string = await pushService.getToken();报如下错误: 1000900010 APP身份验证失败,已配置client_id。请问如何解决?


解决方案:


可能原因:未在AGC平台配置证书指纹,可以看一下文档的证书指纹的生成和配置章节。 请从以下几点排查:


  1. 在AGC API管理中,打开相关服务的API。一般存在十分钟左右的延迟。

  2. module.json5文件中metadata节点下clientid书写正确。需要在里面直接写client_id的信息,不能通过$符引用资源文件中的值,当前无法解析这种引用方式。

  3. “签名证书使用”选项中的配置方式为“选择SHA256公钥指纹‘’。   a. 生成配置指纹: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/push-preparations-0000001727885250#section388942317518   b. 配置证书指纹: https://developer.huawei.com/consumer/cn/doc/app/agc-help-signature-info-0000001628566748#section5181019153511 如果以上三种方式仍无法您的解决问题,请通过以下方式将日志提供给技术支持人员解决

  4. 执行命令:hdc hilog > xxxx.log

  5. 复现场景。

  6. 停止脚本执行。


  7. 在目录下获取日志信息。



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70003787/viewspace-3011889/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
HarmonyOS SDK技术团队。分享最新的技术干货,带来最全的能力应用场景,更新热门开发者圈子活动。与开发者一起,同成长,共精彩。

注册时间:2021-07-15

  • 博文量
    627
  • 访问量
    729623