SDKsuni-app / uni-app x商业版
反向加载历史消息
从消息锚点向较新消息方向分页读取历史记录。
从搜索结果、回复消息或其他锚点进入聊天页,需要补齐锚点之后的消息时,调用 getHistoryMessageList() 并将 isReverse 设为 true。这不是实时接收接口;后续新消息仍由接收消息中的事件处理。
参数说明
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
conversationID | string | 是 | 锚点消息所属的会话 ID。 |
startClientMsgID | string | 是 | 向较新方向读取时使用的锚点消息 ID。 |
count | number | 是 | 本次最多读取的消息数量。 |
isReverse | boolean | 是 | 传 true,表示从锚点向较新消息方向读取。 |
viewType | OpenIMMessageViewType | 否 | 历史消息视图传 OpenIMMessageViewTypeHistory;省略时 SDK 也按历史消息视图处理。 |
import {
OpenIMMessageViewTypeHistory,
getHistoryMessageList,
} from '@/uni_modules/unix-openim-sdk'
const page = await getHistoryMessageList({
conversationID: conversationID,
startClientMsgID: anchorMessage.clientMsgID ?? '',
count: 30,
isReverse: true,
viewType: OpenIMMessageViewTypeHistory,
})
if (page != null && page.errCode == 0) {
appendMessages(page.messageList)
}锚点必须具有非空 clientMsgID;无法取得消息 ID 时,应先按 ID 查找消息或重新加载当前会话。继续分页时更新 startClientMsgID;isEnd 表示向较新方向是否已经到达当前历史边界。
返回对象字段与加载历史消息相同。不要在同一个滚动边界交替使用两个方向;加入列表时按 conversationID:clientMsgID 去重。
这个页面有帮助吗?