集成 HarmonyOS 推送

大约 2 分钟

集成 HarmonyOS 推送

环信即时通讯 IM SDK 中已集成 HarmonyOS 推送相关逻辑,你还需要完成以下步骤。

步骤一 申请服务账号密钥

鸿蒙推送基于服务账号生成鉴权令牌,因此,需申请服务账号密钥open in new window

  1. 开启鸿蒙推送服务。

image

  1. 创建服务账号凭证。

image

  1. 凭证创建后,可点击创建并下载JSON,获取服务账号密钥。

image

步骤二 上传推送证书

注册完成后,需要在环信即时通讯云控制台上传推送证书,选择你的应用 > 即时通讯 > 功能配置 > 消息推送 > 证书管理。点击 添加推送证书,在 添加推送证书 窗口选择 鸿蒙 页签,然后设置推送证书相关参数。

提示

该步骤须在登录环信 IM SDK 成功后进行。

image

推送证书参数类型是否必需描述
证书名称String推送证书名称,请填写鸿蒙 Client ID。
证书名称是环信服务器用来判断目标设备使用哪种推送通道的唯一条件,因此必须确保与 HarmonyOS 终端设备上传的证书名称一致。
详见 创建服务账号密钥窗口中 名称 参数的值open in new window
上传文件-点击 上传证书,上传 JSON 推送证书,即服务账号的密钥文件。申请服务器密钥可参考官方文档:华为 API Console操作指南-服务帐号密钥open in new window,选择启用推送服务后,再生成服务器密钥。
Category-通知消息类别。详见 HarmonyOS NEXT 官网相关文档open in new window
Action-消息接收方在收到离线推送通知时单击通知栏时打开的应用指定页面的自定义标记。

步骤三 在项目中配置 Client ID

在项目模块级别下的 src/main/module.json5(例如 entry/src/main/module.json5)中,新增 metadata 并配置 client_id,如下所示:

配置 client_idvalue 时,不能通过 resource 中的值配置(例如 $media.icon),请直接写入 client_id 的值。

"module": {
  "name": "entry",
  "type": "xxx",
  "description": "xxxx",
  "mainElement": "xxxx",
  "deviceTypes": [],
  "pages": "xxxx",
  "abilities": [],
  // 配置如下信息
  "metadata": [ 
    {
      "name": "client_id",
      // 配置为步骤 1 中获取的 Client ID
      "value": "xxxxxx"  
    }
  ]
}

步骤四 在 SDK 初始化时配置应用的推送 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 上传结果

你可以设置 PushListener 监听 Push Token 的上传结果。

private pushListener: PushListener = {
    onError: (error: ChatError) => {
      // push token 绑定失败。
    },
    onBindTokenSuccess: (token: string) => {
      // push token 绑定成功。
    }
}
ChatClient.getInstance().pushManager()?.addListener(this.pushListener);