跳到主要内容

消息管理

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

局限

Global IM UIKit 目前有以下限制:

  • 图片、文件大小上限为 100 MB。
  • GIF 文件大小上限为 2 MB。超出限制后,GIF 文件将作为普通文件消息发送。
  • 支持发送时长不超过 2 分钟的小视频。

发送消息

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

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

JavaScript
// 构建目标会话,此处以单聊会话为例
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 平台下,该消息会被持久化到本地数据库。

代码示例

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

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

// 插入消息,请注意,使用的是 Global IM UIKit 提供的 insertMessage 接口
const { code } = await kitApp.insertMessage(conversation, message);