集成指南 | 融云鸿蒙 IMKit 来了!解锁 HarmonyOS 原生社交模块高效开辟秘 ...

打印 上一主题 下一主题

主题 864|帖子 864|积分 2592

纯血鸿蒙操作系统上线以来,已经吸引了超过 720 万开辟者。随着越来越多开辟者加入,娱乐社交、电子商务、交通出行、协同办公等原生鸿蒙应用纷纷上线,推动了鸿蒙生态系统的敏捷发展。
融云第一时间上线了鸿蒙 IM SDK,快速响应所有应用必备的社交模块需求。

对于开辟者来说,在鸿蒙生态上开辟应用是一个站在全新出发点去获取增量的机会,对性能和高效的需求与日俱增。
在社交类 SDK 中,融云率先提供鸿蒙 IMKit,含开箱即用的 UI 组件和预设的交互模式,让开辟者的业务实现快人一步;覆盖多类型单群聊消息发送,置顶、免打搅、输入状态、➕号区域扩展等会话页面和列表管理,撤回、删除、引用、已读回执等消息管理,以及消息撤回编辑、消息高亮颜色等丰富的自定义能力,助力开辟者快速构建功能更全、体验更好的鸿蒙应用。


本文主要先容如何快速集成融云鸿蒙 IMKit,高效实现鸿蒙原生应用的社交模块。
准备工作

在开始集成 IMKit 之前,请确保您已完成以下准备工作:
注册融云开辟者账号:访问融云官网注册开辟者账号。注册成功后,控制台会自动创建您的首个应用,并生成开辟情况下的 App Key。
获取 App Key:登录融云开辟者控制台,在“应用管理”中找到您的应用,即可获取开辟情况的 App Key。请注意,每个应用具有两个差别的 App Key,分别对应开辟情况和生产情况,两个情况之间数据隔离。在您的应用正式上线前,请切换到使用生产情况的 App Key。
安装开辟工具:确保您已安装 DevEco Studio NEXT Release(5.0.3.900) 及以上版本,并已配置好 HarmonyOS SDK API 12 及以上版本。建议使用手机系统版本号 NEXT.0.0.31 的真机进行测试。
快速集成

融云支持在 DevEco Studio 中自动导入和手动导入 IMKit SDK。我们推荐使用自动导入方式,更加便捷。
自动导入 SDK
支持从 OpenHarmony 三方库中心仓获取 SDK。
☑ 在 entry 目录中的 oh-package.json5 文件中添加 IMKit 依赖。
  1. // entry 目录中的 oh-package.json5
  2. {
  3.   "name": "entry",
  4.   "version": "1.0.0",
  5.   "description": "Please describe the basic information.",
  6.   "main": "",
  7.   "author": "",
  8.   "license": "",
  9.   "dependencies": {
  10.     // x.y.z 为 IMKit 的版本号,请前往融云官网或 OpenHarmony 三方库中心仓查询最新版本号。
  11.     "@rongcloud/imkit" : "x.y.z",
  12.     "@rongcloud/imlib" : "x.y.z",
  13.   }
  14. }
复制代码
☑ 点击 DevEco Studio 中的“Sync Now”按钮,同步项目依赖。

安装 SDK 成功后,您可以在项目根目录的 oh_modules/.ohpm/ 中找到融云 IMKit SDK。您也可以打开 OpenHarmony 三方库中心仓,搜刮关键字 rongcloud 检察更多其他融云 SDK。
手动导入 SDK
如果您无法使用自动导入,大概有特殊需求,可以选择手动导入 SDK。
☑ 将 SDK 放入 App 仓库:在项目根路径创建 libs 目录,将 RonglMLib.har 和 RonglMKit.har 放到 libs 目录。
☑ 重写 IMLib 依赖:在项目根路径 oh-package.json5 中重写 IMLib 的依赖,以确保 IMKit 可以大概精确依赖 IMLib。
  1. // 项目根路径 oh-package.json5
  2. {
  3.   "modelVersion": "5.0.0",
  4.   "description": "Please describe the basic information.",
  5.   "dependencies": {
  6.   },
  7.   "devDependencies": {
  8.     "@ohos/hypium": "1.0.19",
  9.     "@ohos/hamock": "1.0.0"
  10.   },
  11.   // 重写 imlib 的位置,确保 IMKit 能够正确依赖 IMLib
  12.   "overrides": {
  13.     "@rongcloud/imlib" :"file:./libs/RongIMLib.har"
  14.   }
  15. }
复制代码
☑ App 依赖 IMLib & IMKit:在 entry 目录下实行以下下令:
  1. 1. 进入 entry 目录
  2. cd entry
  3. 2. 依赖 IMLib
  4. ohpm install ../libs/RongIMLib.har
  5. 3. 依赖 IMKit
  6. ohpm install ../libs/RongIMKit.har
复制代码
☑ 配置项目:请参考融云开辟者文档中的“配置阐明”部分进行项目配置。
初始化连接

在使用 IMKit 之前,需要先初始化 SDK 并连接融云服务器。
获取用户 Token:用户 Token 是用户在融云的唯一身份标识。在实际应用中,您需要通过应用服务器调用融云 Server API 获取 Token。为了快速体验,您可以使用融云控制台「北极星」开辟者工具箱的 API 调试页面调用“获取 Token”接口。
初始化 SDK:在您的应用代码中,使用以下代码初始化 SDK:
  1. import { IMEngine, InitOption } from '@rongcloud/imlib';
  2. let initOption = new InitOption();
  3. IMEngine.getInstance().init(getContext(), this.appKey, initOption); // this.appKey 为您在融云控制台获取的 App Key
复制代码
连接融云:使用获取到的 Token 连接融云服务器。
  1. let token = "YOUR_TOKEN"; // 替换为您的 Token
  2. IMEngine.getInstance().connect(token, 10).then(result => { // 10 为连接超时时间,单位为秒
  3.     if (EngineError.Success !== result.code) {
  4.     // IM 连接失败,根据 result.code 进行相应处理
  5.     console.error("IM 连接失败: "result.code);
  6.     return;
  7.   }
  8.   // IM 连接成功
  9.   let curUserId = result.userId as string;console.log("IM 连接成功,用户 ID: "curUserId);
  10. }).catch(error => {
  11.     console.error("IM 连接出错:"error);
  12. });
复制代码
您还可以监听 IM 连接状态的变革,以便在 UI 上给用户以提示。
  1. import { IMEngine, ConversationStatusListener, ConversationStatusInfo, List } from '@rongcloud/imlib';
  2. let statusListener : ConversationStatusListener = {onConversationStatusChange: (items: List<ConversationStatusInfo>): void => {
  3.         // 处理连接状态变化
  4.         items.forEach(item => {
  5.             console.log("会话状态变化:", item.conversationId, item.status);
  6.         })
  7.     }
  8. }
  9. IMEngine.getInstance().addConversationStatusListener(statusListener);
  10. //在不需要监听时移除监听器,避免内存泄漏
  11. IMEngine.getInstance().removeConversationStatusListener(statusListener);
复制代码
体验收发消息

IMKit 内置会话页面已实现了发送各类型消息的功能和 UI。当您在自定义页面需要发送消息时,可使用 IMKit 核心类 RongIM 下发送消息的方法。这些方法除了提供发送消息的功能外,还会触发 IMKit 内置页面的更新。
发送消息:发送消息前需要构造 Message 消息对象,参考构造消息。
调用 RongIM 的发送消息方法时,SDK 会触发内置会话列表和页面的更新。
  1. import { RongIM, ConversationIdentifier, ConversationType, TextMessage, Message, EngineError } from '@rongcloud/imlib';
  2. let conId = new ConversationIdentifier();
  3. conId.conversationType = ConversationType.Private; // 设置会话类型,例如单聊 (ConversationType.Private)
  4. conId.targetId = "targetId"; // 替换为目标用户 ID
  5. let textMsg = new TextMessage();
  6. textMsg.content = "这是一条文本消息"; // 设置消息内容
  7. RongIM.getInstance().messageService().sendMessage(new Message(conId, textMsg))
  8.     .then(result => {
  9.         if (EngineError.Success !== result.code) {
  10.             // 发送消息失败,根据 result.code 进行相应处理
  11.             console.error("发送消息失败: " + result.code);
  12.             return;
  13.         }
  14.         if (!result.data) {
  15.             // 消息数据为空
  16.             console.error("消息数据为空");
  17.             return;
  18.         }
  19.         let msg = result.data as Message;
  20.         console.log("消息发送成功:", msg);
  21.     }).catch(error => {
  22.     console.error("发送消息出错:" + error);
  23. });
复制代码
通过 sendMessage 方法,融云服务器会通知您的消息是否已发送成功。当因任何问题导致发送失败时,可通过回调方法返回非常。
此外,融云鸿蒙 IMKit 还提供了更多高级功能,如自定义 UI、消息类型扩展、群组聊天等。点击融云开辟者文档,了解具体信息和更多用法。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

欢乐狗

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表