【FAQ】HarmonyOS鸿蒙Next SDK闭源开放能力—Push Kit

【FAQ】HarmonyOS鸿蒙Next SDK闭源开放能力—Push Kit

  1. 问题描述
    升级到4.0.0.59版本后,通过pushService.getToken获取华为的token时报如下错误:Illegal application identity.

解决方案
Mate 40 Pro (NOH) 从 4.1版本升级后,会出现UDID变化,影响历史的调试签名使用,应用重新签名后即可正常运行。

  1. 问题描述
    按照操作步骤,获取到了服务token,以及Authorization对应的JWT字符串。按照demo给的request body,将projectId和token替换为真实的数据,用postman post请求 这里显示成功,但是获取服务token的设备并未接收到通知或显示推送。

解决方案
请先确认应用是否请求通知授权,或者在设置中打开了通知开关,相关指导请参见:这里

  1. 问题描述
    如何获取设备永久唯一标识符?

解决方案

  1. 使用AAID作为应用唯一标识符,具体请参考:这里。 请注意:AAID可被一系列操作修改。

  2. 实现应用AAID不清除可以结合Asset能力实现,具体请参考: 这里

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

解决方案:
可能原因一:
消息提醒的方式与消息类别有关,比如:
a. 服务与通讯类的提醒方式为:锁屏、铃声、振动。
b. 资讯营销类的消息提醒方式为:静默通知,仅在通知中心展示消息。
当前开发者的消息类型应该是资讯营销类的消息,消息提醒方式与消息类别的对应关系请参考:这里

可能原因二:
如果发送的消息确实是服务与提醒类的消息 ,那么可以通过申请自分类来实现,请参考:这里

可能原因三:
当前横幅通知只有服务与提醒类别下的“IM”和“VOIP”消息才支持,请参考:这里

  1. 问题描述:
    这里 serviceNotification.requestSubscribeNotification接口参数中entityIds实体id列表,这个列表的数据是怎么确定的?

解决方案:
entityIds是订阅消息的模板ID,请参考消息订阅页面中的列表信息,对应文档:这里

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

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

  1. 问题描述:
    为什么配置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"
}
]
}
]
  1. 问题描述:
    为什么后台推送透传消息(push-type: 6),自助查询提示”其他错误,建议您联系技术支持“?

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

  1. 问题描述:
    获取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. 生成配置指纹:这里
    b. 配置证书指纹:这里
    如果以上三种方式仍无法您的解决问题,请通过以下方式将日志提供给技术支持人员解决:
  4. 执行命令:hdc hilog > xxxx.log
  5. 复现场景。
  6. 停止脚本执行。
  7. 在目录下获取日志信息。

更多关于【FAQ】HarmonyOS鸿蒙Next SDK闭源开放能力—Push Kit的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

HarmonyOS鸿蒙Next SDK中的Push Kit是一种闭源开放能力,主要用于实现消息推送功能。Push Kit允许开发者通过华为的推送服务,向用户设备发送通知和消息。它支持多种消息类型,包括通知栏消息、透传消息等,并且能够根据用户的行为和偏好进行精准推送。

Push Kit的主要特点包括:

  • 高效推送:通过华为的推送通道,确保消息能够快速、稳定地送达用户设备。
  • 精准触达:支持基于用户标签、地理位置、行为等维度的精准推送,提升用户参与度。
  • 消息管理:提供消息统计、用户画像等功能,帮助开发者优化推送策略。
  • 安全可靠:采用加密传输和鉴权机制,确保消息的安全性和隐私保护。

Push Kit的集成步骤包括:

  • 配置开发环境:在HarmonyOS项目中引入Push Kit的SDK。
  • 初始化推送服务:在应用启动时初始化Push Kit,并获取设备的推送令牌。
  • 发送消息:通过华为的推送服务API,向指定设备或用户群体发送消息。
  • 处理接收消息:在应用中实现消息接收逻辑,处理用户点击通知等行为。

Push Kit的闭源特性意味着其核心实现细节不对外公开,开发者只能通过提供的API和文档进行集成和使用。

更多关于【FAQ】HarmonyOS鸿蒙Next SDK闭源开放能力—Push Kit的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS鸿蒙Next SDK中的Push Kit是一种闭源开放能力,旨在为开发者提供高效、稳定的消息推送服务。通过Push Kit,开发者可以实现应用内消息的实时推送,提升用户活跃度和留存率。该服务支持多种推送方式,包括通知栏消息、透传消息等,并具备高并发、低延迟的特点。Push Kit还提供了丰富的API接口,便于开发者快速集成和定制推送功能,满足不同场景下的需求。

回到顶部