SDKsuni-app / uni-app x商业版
读取消息上下文
读取一条锚点消息前后的聊天记录。
从搜索结果或回复引用跳入聊天上下文时,将已经取得的完整 OpenIMMessageItem 作为锚点传给 fetchSurroundingMessages()。
参数说明
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
startMessage | OpenIMMessageItem | 是 | 已经取得的完整锚点消息。 |
viewType | OpenIMMessageViewType | 是 | 读取聊天上下文时传 OpenIMMessageViewTypeHistory。 |
before | number | 是 | 锚点之前最多读取的消息数量。 |
after | number | 是 | 锚点之后最多读取的消息数量。 |
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 查找消息。
这个页面有帮助吗?