前言
环信Harmony推送服务为开发者提供了一种高效、稳定的消息推送解决方案。通过集成环信Harmony推送,开发者可以轻松实现消息的实时推送,提升应用的用户粘性和活跃度。本文旨在提供详细的集成步骤和注意事项,帮助开发者顺利完成环信Harmony推送的集成工作。
在集成过程中,开发者需要了解环信Harmony推送的基本原理和集成流程,并准备好相应的开发环境和工具。同时,开发者还需要注意处理各种异常情况,如网络断开、服务器异常等,以确保应用的稳定运行。
通过本文的指导,开发者可以掌握环信Harmony推送的集成方法,并在实际开发中灵活应用。希望本文能对开发者有所帮助,助力开发者打造更加出色的应用产品。
一、申请服务账号密钥
鸿蒙推送基于服务账号生成鉴权令牌,因此,需申请服务账号密钥
1、开启鸿蒙推送服务。
2、创建服务账号凭证。
3、凭证创建后,可点击创建并下载JSON,获取服务账号密钥。
注:该JSON 文件是用来上传到环信后台
二、上传推送证书到环信console控制台
1、证书名称填写鸿蒙 Client ID
地址:https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/myProject/388421841222371640/97458334310914890?appId=5765880207855089063
如下图
三、证书、APP ID、设备、Profile 申请
1、申请证书
① 登录AppGallery Connect,选择“证书、APP ID和Profile”。
② 在左侧导航栏选择“证书、APP ID和Profile > 证书”,进入“证书”页面,点击“新增证书”。
③ 在弹出的“新增证书”窗口填写要申请的证书信息,点击“提交”。
2、选取证书请求文件(CSR)
证书请求文件需要在DevEco Studio上申请,具体操作请参考生成证书请求文件。
① 在主菜单栏单击Build > Generate Key and CSR。
② 在Key Store File中,可以单击Choose Existing选择已有的密钥库文件(存储有密钥的.p12文件);如果没有密钥库文件,单击New进行创建。下面以新创建密钥库文件为例进行说明。
③在Create Key Store窗口中,填写密钥库信息后,单击OK。
Key store file:设置密钥库文件存储路径,并填写p12文件名。
Password:设置密钥库密码,必须由大写字母、小写字母、数字和特殊符号中的两种以上字符的组合,长度至少为8位。请记住该密码,后续签名配置需要使用。
Confirm password:再次输入密钥库密码。
④ 在Generate Key and CSR界面中,继续填写密钥信息后,单击Next。
Alias:密钥的别名信息,用于标识密钥名称。请记住该别名,后续签名配置需要使用。
Password:密钥对应的密码,与密钥库密码保持一致,无需手动输入。
⑤ 在Generate Key and CSR界面,设置CSR文件存储路径和CSR文件名。
⑥ 单击Finish,创建CSR文件成功,可以在存储路径下获取生成的密钥库文件(.p12)、证书请求文件(.csr)和material文件夹(存放签名方案相关材料,如密码、证书等)。
3、手动配置签名信息
在DevEco Studio中配置密钥(.p12)文件、申请的调试证书(.cer)文件和调试Profile(.p7b)文件。
在File > Project Structure > Project > Signing Configs窗口中,取消勾选“Automatically generate signature”(如果是HarmonyOS应用,请勾选“Support HarmonyOS”),然后配置工程的签名信息。
Store file:选择密钥库文件,文件后缀为.p12,该文件为生成密钥和证书请求文件中生成的.p12文件。
Store password:输入密钥库密码,该密码与生成密钥和证书请求文件中填写的密钥库密码保持一致。
Key alias:输入密钥的别名信息,与生成密钥和证书请求文件中填写的别名保持一致。
Key password:输入密钥的密码,与生成密钥和证书请求文件中填写的Store Password保持一致。
Sign alg:签名算法,固定为SHA256withECDSA。
Profile file:选择申请调试证书和调试Profile文件中生成的Profile文件,文件后缀为.p7b。
Certpath file:选择申请调试证书和调试Profile文件中生成的数字证书文件,文件后缀为.cer。
配置完成后,进入工程级build-profile.json5文件,在“signingConfigs”下可查看到配置成功的签名信息。
四、客户端配置应用的推送 Client ID
// ChatOptions 需要传入 appkey 参数。
let options = new ChatOptions("Your appKey");
// 传入 AppGallery Connect 获取到的 ClientID。
options.setAppIDForPush('Your ClientID');
// 初始化即时通讯 IM SDK。
ChatClient.getInstance().init(context, options);
五、监听 Push Token 上传结果
private pushListener: PushListener = {
onError: (error: ChatError) => {
// push token 绑定失败。
},
onBindTokenSuccess: (token: string) => {
// push token 绑定成功。
}
}
ChatClient.getInstance().pushManager()?.addListener(this.pushListener);
注意:如果该回调没有执行,是因为客户端或者华为官网上配置有问题,需要对照上面步骤检查一下
客户端可以过滤环信日志,会有如下报错信息。
有问题,需要对照上面步骤检查一下
客户端可以过滤环信日志,会有如下报错信息。
至此,如果监听绑定成功,说明集成已经完成,可以至环信console后台测试离线推送。