跳到主要内容

插入消息

插入单条消息

  • 通过该功能在本地会话中插入一条消息。
  • 插入的消息必须是可存储消息,否则报参数错误异常。
  • 消息插入功能插入的消息仅支持配置会话类型、会话 ID、频道 ID、消息的发送方向、消息的发送时间以及各类消息独有的可访问属性。
  • 默认不配置的情况下插入的是一条发送方已经发送成功的消息

方法

insertMessage(message: RCIMIWMessage): Promise<number>;

参数说明

参数名参数类型描述
messageRCIMIWMessage已存入数据库的 message 对象

返回值

返回值描述
Promise<number>当次接口操作状态码,并不代表最终操作结果,状态码详细信息

代码示例

engine.createTextMessage(conversationType, targetId, channelId, '这是一条插入的消息')
.then((message: RCIMIWTextMessage) => {
// 可以修改 message 的部分属性,包括会话类型、会话 ID、频道 ID、消息的发送方向、消息的发送时间以及各类消息独有的可访问属性。
message.direction = RCIMIWMessageDirection.receive;
message.receivedStatus = RCIMIWReceivedStatus.unread;

engine.insertMessage(message)
.then((code: number) => {});
});

回调方法

  • setOnMessageInsertedListener

    接口调用结果的监听

setOnMessageInsertedListener(listener?: (code: number, message: RCIMIWMessage) => void): void;

参数说明

参数名参数类型描述
codenumber接口回调的状态码,0 代表成功,非 0 代表出现异常
messageRCIMIWMessage已存入数据库的 message 对象

代码示例

engine.setOnMessageInsertedListener((code: number, message: RCIMIWMessage) => {});

SDK 支持在本地数据库中插入消息。本地插入的消息不会实际发送给服务器和对方。

  • 请确保所有插入消息均为可存储消息,否则会报错。
  • 插入消息的接口仅将消息插入本地数据库,所以 App 卸载重装或者换端登录时插入的消息不会从远端同步到本地数据库。

插入多条消息

  • 通过该功能在本地会话中插入多条消息。
  • 插入的消息必须是可存储消息,否则报参数错误异常。
  • 消息插入功能插入的消息仅支持配置会话类型、会话 ID、频道 ID、消息的发送方向、消息的发送时间以及各类消息独有的可访问属性。
  • 默认不配置的情况下插入的是一条发送方已经发送成功的消息
  • 建议每次最多传入 10 条,当有一条失败时,所有的消息都会插入失败

方法

insertMessages(messages: Array<RCIMIWMessage>): Promise<number>;

参数说明

参数名参数类型描述
messagesArray<RCIMIWMessage>已存入数据库的 message 对象

返回值

返回值描述
Promise<number>当次接口操作状态码,并不代表最终操作结果,状态码详细信息

代码示例

engine.createTextMessage(conversationType, useTargetId, useChannelId, '这是一条插入的消息-01')
.then((message) => {
let message2 = { ...message };
message2.text = '这是一条插入的消息-02';
engine.insertMessages([message, message2])
.then((code: number) => {});
});

回调方法

  • setOnMessagesInsertedListener

    接口调用结果的监听

setOnMessagesInsertedListener(listener?: (code: number, messages: Array<RCIMIWMessage>) => void): void;

参数说明

参数名参数类型描述
codenumber接口回调的状态码,0 代表成功,非 0 代表出现异常
messagesArray<RCIMIWMessage>已存入数据库的 message 对象

代码示例

engine.setOnMessagesInsertedListener((code: number, messages: Array<RCIMIWMessage>) => {});