浏览 SDKs · Flutter
平台
SDKsFlutter

加载历史消息

使用 Flutter SDK 分页读取会话历史消息。

复制

从指定会话向上分页拉取更早的历史聊天记录:

参数说明

参数类型是否必填说明
conversationIDString是目标会话 ID。
startMsgMessage?否分页锚点消息对象。首屏查询传 null;后续分页传当前已加载的最早一条完整消息。
countint是每页拉取的消息数量。
viewTypeint?否历史记录视图类型,默认为普通历史(GetHistoryViewType.history)。
final page = await OpenIM.iMManager.messageManager
    .getAdvancedHistoryMessageList(
  conversationID: conversationID,
  startMsg: oldestMessage,
  count: 30,
  viewType: GetHistoryViewType.history,
);

prependMessages(page.messageList ?? const <Message>[]);

返回结果

Future 成功返回历史消息分页对象(AdvancedMessage),其 messageList 为当前批次的消息列表,isEnd 表示是否已拉取到最早的历史消息。

当 isEnd == true 时,表示本地及云端已无更早的历史记录,应停止继续向上拉取。查询操作仅获取静态数据快照,不会触发新消息事件通知;本地列表必须统一使用非空 clientMsgID 进行去重。若需从搜索结果等特定锚点向下反向加载更新的消息,请参考反向加载历史消息与按 ID 定位消息。