按 UID 获取消息
从 26.3.0 开始,IMLib SDK 提供 getMessagesByUid 接口,支持基于会话标识和消息 UID 列表批量查询消息。SDK 会先查询本地数据库,本地未命中的消息会按需查询远端。
批量获取消息
接口原型
TypeScript
public getMessagesByUid(
conId: ConversationIdentifier,
messageUidList: List<string>
): Promise<IAsyncResult<Array<MessageResult>>>;
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| conId | ConversationIdentifier | 会话标识对象,需包含有效的会话类型和会话 ID。 |
| messageUidList | List<string> | 消息 UID 列表。 |
返回结果说明
接口返回 Array<MessageResult>。每个 MessageResult 表示一个消息 UID 的查询结果。
| 参数 | 类型 | 说明 |
|---|---|---|
| messageUId | string | 查询的消息 UID。 |
| message | Message | 查询到的消息。未查询到时为空。 |
| code | number | 该 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>;
});