写点什么

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

作者:HMS Core
  • 2024-04-09
    广东
  • 本文字数:1728 字

    阅读完需:约 6 分钟

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. 在目录下获取日志信息。


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

用户头像

HMS Core

关注

HarmonyOS SDK 2022-06-16 加入

HarmonyOS SDK通过将HarmonyOS系统级能力对外开放,支撑开发者高效打造更纯净、更智能、更精致、更易用的鸿蒙原生应用,和开发者共同成长。

评论

发布
暂无评论
【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(2)_HarmonyOS_HMS Core_InfoQ写作社区