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

加载消息上下文

商业版围绕一条锚点消息读取前后文。

复制

从搜索结果或引用消息跳入聊天上下文时,把已经取得的完整 OpenIMMessageItem 作为锚点。fetchSurroundingMessages() 属于商业版

参数说明

参数类型是否必填说明
startMessageOpenIMMessageItem已经取得的锚点消息。
viewTypenumber上下文查看方向,使用服务端约定值。
beforenumber锚点之前最多读取的消息数量。
afternumber锚点之后最多读取的消息数量。
import { fetchSurroundingMessages } from '@/uni_modules/unix-openim-sdk'

const result = await fetchSurroundingMessages({
  startMessage: targetMessage,
  viewType: 0,
  before: 20,
  after: 20,
})
const surroundingMessages = result?.messages ?? []

Promise 成功后,result?.messages 是锚点前后取得的 OpenIMMessageItem[],字段见消息概览。当前 uni-app / uni-app x 返回字段名是 messages,不是 Wasm 的 messageList

beforeafter 分别限制锚点前后的数量。返回结果可能少于请求总数,例如锚点靠近边界或部分消息已删除。结果与实时事件可能重复,应按 conversationID:clientMsgID 去重并保持时间顺序。不要使用只包含 ID 的伪消息作为锚点;需要先定位时见按 ID 查找消息