跳到主要内容

消息管理

Global IM UIKit 需要会根据消息的发送与接收,动态更新 UI 界面内的消息列表、会话列表的显示状态,因此,在集成 Global IM UIKit 时,开发者需要注意:不要使用 IMLib 中的消息发送功能接口,而需要使用 Global IM UIKit 提供的消息发送接口,以便于 SDK 内部能够正确处理消息状态。

局限

Global IM UIKit 目前有以下限制:

  • 图片、文件大小上限为 100 MB。
  • GIF 文件大小上限为 2 MB。超出限制按文件消息发送。
  • 支持发送不超过 2 分钟的小视频。

发送消息

一般情况下,用户可通过既有 UI 界面操作来实现各种类型的消息发送,当开发者有需要跳过 UI 直接发送消息时,Global IM UIKit 提供了 sendMessage 接口来实现,该接口与 IMLib 接口入参完全一致,可通过该接口发送任意类型消息。

以调用 sendMessage 向 A 用户发送文本消息为例,示例代码如下:

// 构建目标会话,此处以群聊会话为例
const conversation = {
conversationType: RongIMLib.ConversationType.PRIVATE, // 会话类型为单聊
targetId: 'A' // 用户 A 的 id
};

// 构建文本消息
const message = new RongIMLib.TextMessage({ content: 'Hello' })

// 发送消息,需注意,发送时使用的是 Global IM UIKit 提供的 sendMessage 接口
const { code } = await kitApp.sendMessage(conversation, message);

想要阅读更详细的消息相关内容,请参考 IMLib SDK 文档 · 发送消息

插入消息

insertMessage 是 Global IM UIKit 提供的消息插入接口,您可以通过此接口来插入到本地消息列表中。

提示

插入本地的消息仅存在于本地缓存中:在 Web 平台下,由于本地没有持久化的消息存储,刷新页面后消息将丢失;Electron 平台下,该消息会被持久化到本地数据库。

代码示例

// 构建目标会话,此处以群聊会话为例
const conversation = {
conversationType: RongIMLib.ConversationType.PRIVATE, // 会话类型为单聊
targetId: 'A' // 用户 A 的 id
};

// 构建文本消息
const message = new RongIMLib.TextMessage({ content: 'Hello' })

// 发送消息,需注意,发送时使用的是 Global IM UIKit 提供的 sendMessage 接口
const { code } = await kitApp.insertMessage(conversation, message);