今天做纯血鸿蒙项目的极光推送功能, 全网除了官方文档, 一篇文章都找不到.😄最后还是联系技术支持, 虽然回消息有点慢, 但是快下班的时候收到了第一条消息, 真是太激动了, 于是就想着加班给整理出来, 供大家参考, 希望大家少踩点坑
环境
- 开发环境:
DevEco Studio NEXT Developer Beta5 - 手机环境:
mate60 - 系统版本:
NEXT.0.0.36 - Developer Beta3 - 极光推送:
@jg/push: 1.1.0 - 电脑环境:
Apple M1 Max
对接极光步骤
手机端
1. 打开 APP 通知功能, 关掉锁屏通知功能
项目端
1. 集成极光推送SDK
使用 ohpm 包管理工具集成, 极光推送仓库
ohpm install @jg/push
2. 添加配置和必要的代码
这里按照 极光集成指南 一步一步做就可以了, 我重点指出一些遇到的坑点, 文档还是很全的, 另外最好是参考 鸿蒙demo来完成.
坑点一: 获取 client_id
这个 client_id是鸿蒙端的OAuth 2.0的client id, 注意在这一步一定要找对哪个才是 鸿蒙应用的 client_id, 因为在 华为 的后台, 同一个应用有两个系统的, 一个是安卓端的, 一个是鸿蒙端的, 两个应用在同一个项目下, 名称都一样.一不小心就搞错了, 特别是以前不是做安卓的小伙伴.鸿蒙应用下对应的还有两个 client_id, 一个是项目级别的, 一个是应用级别的, 一定要取应用级别的, 目前咱也不清楚有什么区别. 看截图就行了.
在华为后台找到项目设置, 最上面分别是 应用名称, 注意后面那个 有图标, 分别代表安卓和鸿蒙, 后面那个一定要选中鸿蒙系统, 一个H的图标搞错了是接收不了消息的.
坑点二: 极光平台的推送配置
首先还是要找到 推送配置 -> 鸿蒙应用, 当你按照文档说明配置好包名,通知默认标题,Server Key , VIP 以后, 右上角有个启用按钮, 一定要记得打开, 否则再怎么样, 你也收不到消息.
继承类 CallBackMsg
文档没有给出具体示例, 所以要参考 鸿蒙demo, 复制过来就可以了. 还有其他的几个类也是, 用的上的直接复制就好了.
从极光后台发送消息
以上设定目标都做好后, 我们就可以去极光平台手动发消息测试了.极光技术人员说让推通知消息, 不让推自定义消息, 目前还不确定, 具体还不太清楚, 明天测试好了再来更新.
消息中有一个分类字段, 需要参考华为技术文档来填, 一般填 MARKETING 就可以了, 临时测试用一下, 具体的后台用代码推, 那就不是我们的事儿了.交给后台同事处理就可以了.
云端通知category取值
小结
总的来说, 极光的文档还算不错, 只是个别地方不是很详细, 再加上大家都第一次做, 而且网上资料几乎查不到. 还有之前不是做安卓的, 对华为的平台不也角,所以种种buff叠加起来就会有些理解不到位的情况,我就是那个😁.
思考
极光推送 SDK 集成以后, 按照 demo 中添加的代码和注册时机, 项目启动耗时比较长, 目前想到的就是 异步初始化, 或者 首页加载完成后再初始化, 如果有大佬有更好的方案, 欢迎留言交流.
推送自查工具
如果还没有对接成功, 请按以下步骤进行处理, 把排查结果发给技术支持人员:
- 你可以使用排查工具先排查一下(注意是排查工具,不是推送记录!!!): 《排查工具使用说明(消息查询)》
- 如果查询通知已经抵达设备但是没有看到展示,请参考这个文档进行展示排查: 《通知展示相关问题》
- 如果使用排查工具及排查文档仍未解决,请提供:排查工具页面完整截图、appkey、msgid 和 regid 。