快速开始

大约 3 分钟

快速开始

本文介绍如何快速集成即时通讯 IM HarmonyOS SDK 实现单聊。

实现原理

下图展示在客户端发送和接收一对一文本消息的工作流程。

img

前提条件

  • DevEco Studio NEXT Release(5.0.3.900)及以上;
  • HarmonyOS SDK API 12 及以上;
  • 有效的即时通讯 IM 开发者账号和 App ID,详见 开通即时通讯服务

准备开发环境

本节介绍如何创建项目,将即时通讯 IM HarmonyOS SDK 集成到你的项目中,并添加相应的设备权限。

1. 创建 HarmonyOS 项目

参考以下步骤创建一个 HarmonyOS 项目。

  1. 打开 DevEco Studio,点击 Create Project

  2. Choose Your Ability Template 界面,选择 Application > Empty Ability,然后点击 Next

  3. Configure Your Project 界面,依次填入以下内容:

    • Project name:你的 HarmonyOS 项目名称,如 HelloWorld。
    • Bundle name:你的项目包的名称,如 cn.shengwang.helloworld。
    • Save location:项目的存储路径。
    • Compatible SDK:项目的支持的最低 API 等级,选择 5.0.0(12) 及以上。
    • Module name:module的名称,默认为 entry
  4. 点击 Finish。根据屏幕提示,安装所需插件。

上述步骤使用 DevEco Studio NEXT Release(5.0.3.900) 示例。

2. 在工程 build-profile.json5 中设置支持字节码 HAR 包。

修改工程级 build-profile.json5 文件,在 products 节点下设置 useNormalizedOHMUrltrue

{
  "app": {
    "products": [
      {
         "buildOption": {
           "strictMode": {
             "useNormalizedOHMUrl": true
           }
         }
      }
    ]
  }
}

2. 集成 SDK

打开 SDK 下载open in new window页面,获取最新版的即时通讯 IM HarmonyOS SDK,得到 har 形式的 SDK 文件。

将 SDK 文件,拷贝到 Harmony 工程,例如放至 HelloWorld 工程下 entry 模块下的 libs 目录。

修改模块目录的 oh-package.json5 文件,在 dependencies 节点增加依赖声明。

{
  "name": "entry",
  "version": "1.0.0",
  "description": "Please describe the basic information.",
  "main": "",
  "author": "",
  "license": "",
  "dependencies": {
    "@shengwang/chatsdk": "file:./libs/chatsdk-x.x.x.har"
  }
}

最后单击 File > Sync and Refresh Project 按钮,直到同步完成。

3. 添加项目权限

在模块的 module.json5 ,例如:HelloWorldentry 模块的 module.json5 中,配置示例如下:

{
  module: {
    requestPermissions: [
      {
        name: "ohos.permission.GET_NETWORK_INFO",
      },
      {
        name: "ohos.permission.INTERNET",
      },
    ],
  },
}

实现单聊

本节介绍如何实现单聊。

1. SDK 初始化

let options = new ChatOptions({
  appId: "Your AppId"
})
......// 其他 ChatOptions 配置。
// 初始化时传入上下文以及选项
ChatClient.getInstance().init(context, options);

2. 注册即时通讯 IM 用户

创建用户

声网控制台open in new window按照如下步骤创建用户:

  1. 展开控制台左上角下拉框,选择需要开通即时通讯 IM 服务的项目。

  2. 点击左侧导航栏的全部产品

  3. 在下拉列表中找到即时通讯 IM 并点击。

  4. 即时通讯 IM 页面,进入运营管理标签页。

  5. 用户 页签下,点击创建IM用户

  6. 在弹出的对话框中,配置用户相关参数,点击确定

img

获取用户 token

创建用户后,在用户列表点击对应的用户的操作一栏中的更多,选择查看Token

在弹出的对话框中,可以查看用户 Token,也可以点击重新生成,生成用户 token。

img

在生产环境中,为了安全考虑,你需要部署 App Server 生成 Token,详见 Token 鉴权文档

3. 登录账号

使用如下代码实现用户登录:

ChatClient.getInstance().loginWithToken(userId, token).then(() => {
    // 登录成功回调
}).catch((e: ChatError) => {
    // 登录失败回调,包含错误信息
});

提示

  1. 除了注册监听器,其他的 SDK 操作均需在登录之后进行。

4. 发送一条单聊消息

// `content` 为要发送的文本内容,`toChatUsername` 为对方的账号。
let message = ChatMessage.createTextSendMessage(toChatUsername, content);
if (!message) {
    return;
}
// 发送消息
ChatClient.getInstance().chatManager()?.sendMessage(message);
上次编辑于: