跳到主要内容

按 UID 获取消息

从 26.3.0 开始,IMLib SDK 提供 getMessagesByUid 接口,支持基于会话标识和消息 UID 列表批量查询消息。SDK 会先查询本地数据库,本地未命中的消息会按需查询远端。

批量获取消息

接口原型

TypeScript
public getMessagesByUid(
conId: ConversationIdentifier,
messageUidList: List<string>
): Promise<IAsyncResult<Array<MessageResult>>>;

参数说明

参数类型说明
conIdConversationIdentifier会话标识对象,需包含有效的会话类型和会话 ID。
messageUidListList<string>消息 UID 列表。

返回结果说明

接口返回 Array<MessageResult>。每个 MessageResult 表示一个消息 UID 的查询结果。

参数类型说明
messageUIdstring查询的消息 UID。
messageMessage查询到的消息。未查询到时为空。
codenumber该 UID 的查询结果错误码。

示例代码

TypeScript
let conId = new ConversationIdentifier();
conId.conversationType = ConversationType.Private;
conId.targetId = "会话 id";

let messageUidList = new List<string>();
messageUidList.add("CH2C-A072-OGM5-E3HL");

IMEngine.getInstance().getMessagesByUid(conId, messageUidList).then(result => {
if (EngineError.Success !== result.code) {
// 调用失败
return;
}
if (!result.data) {
// 查询结果为空
return;
}

let msgResultList = result.data as Array<MessageResult>;
});