浏览 SDKs · uni-app / uni-app x
平台
SDKsuni-app / uni-app x商业版

读取消息上下文

读取一条锚点消息前后的聊天记录。

复制

从搜索结果或回复引用跳入聊天上下文时,将已经取得的完整 OpenIMMessageItem 作为锚点传给 fetchSurroundingMessages()

参数说明

参数类型是否必填说明
startMessageOpenIMMessageItem已经取得的完整锚点消息。
viewTypeOpenIMMessageViewType读取聊天上下文时传 OpenIMMessageViewTypeHistory
beforenumber锚点之前最多读取的消息数量。
afternumber锚点之后最多读取的消息数量。
import {
  OpenIMMessageViewTypeHistory,
  fetchSurroundingMessages,
} from '@/uni_modules/unix-openim-sdk'

const result = await fetchSurroundingMessages({
  startMessage: targetMessage,
  viewType: OpenIMMessageViewTypeHistory,
  before: 20,
  after: 20,
})

if (result != null) {
  renderMessages(result.messages)
}

Promise 成功后返回 OpenIMFetchSurroundingMessagesResult | null,消息数组字段是 messages。结果可能少于 before + after,例如锚点靠近历史边界或部分消息已经删除。

锚点应来自消息查询结果或消息事件,不要用业务层自行拼装的不完整对象。加入现有列表时,使用锚点所属会话和 clientMsgID 去重;需要先取得锚点时见按 ID 查找消息