浏览 SDKs · React Native
平台
SDKsReact Native

获取会话列表

分页获取当前登录账号的会话列表。

复制

分页拉取当前登录账号的本地会话列表,建立会话列表初始快照。

const conversations = await OpenIMSDK.getConversationListSplit({
  offset: 0,
  count: 50,
});

参数说明

参数类型必填含义
offsetnumber是分页偏移量,首页传 0。继续加载时按已请求的条目数递增。
countnumber是本次请求的会话数量。

返回结果

调用完成后返回当前页的 ConversationItem[]。当返回数量小于 count 时,表示已经读取到当前列表末尾。

会话字段

ConversationItem 同时包含聊天目标、列表展示和当前账号的会话设置:

字段类型说明
conversationIDstring会话 ID。
conversationTypeSessionType会话类型,单聊或群聊。
userIDstring单聊对方的用户 ID;群聊中通常为空。
groupIDstring群聊对应的群组 ID;单聊中通常为空。
showNamestring会话的展示名称。
faceURLstring会话的展示头像地址。
recvMsgOptMessageReceiveOptType当前会话的消息接收方式。
unreadCountnumber当前会话的未读消息数。
groupAtTypeGroupAtType群聊中的提醒状态;单聊不使用。
latestMsgstring最后一条消息的 JSON 序列化内容。
latestMsgSendTimenumber最后一条消息的发送时间。
draftTextstring当前设备保存的会话草稿。
draftTextTimenumber草稿更新时间。
isPrivateChat商业版boolean是否开启私聊阅后即焚。
burnDuration商业版number私聊阅后即焚时长。
isMsgDestruct商业版boolean是否开启服务端消息定期删除。
msgDestructTime商业版number服务端消息定期删除周期。
isPinnedboolean会话是否置顶。
isMarked 商业版boolean会话是否已标记。
isNotInGroupboolean当前账号是否已不在该群组中。
attachedInfostringSDK 附加信息。
exstring(可选)会话扩展字符串。
remark 商业版string(可选)会话备注。

拉取会话列表时,客户端必须以 conversationID 为唯一合并标识进行分页累加与去重,避免同一会话在列表中重复出现。刷新列表时从 offset: 0 重新读取。

监听会话变化

新建会话时会触发 OnNewConversation 事件,已有会话发生变化(如接收新消息、未读数更新、草稿设置或置顶状态变化)时会触发 OnConversationChanged 事件。两个事件的回调参数均为 ConversationItem[]。客户端在收到增量事件时,同样根据 conversationID 定位并更新对应会话项目。

function handleNewConversation(conversations: ConversationItem[]) {
  // ...
}

function handleConversationChanged(conversations: ConversationItem[]) {
  // ...
}

// 设置监听
OpenIMSDK.on(OpenIMEvent.OnNewConversation, handleNewConversation);
OpenIMSDK.on(OpenIMEvent.OnConversationChanged, handleConversationChanged);

// 取消监听
OpenIMSDK.off(OpenIMEvent.OnNewConversation, handleNewConversation);
OpenIMSDK.off(OpenIMEvent.OnConversationChanged, handleConversationChanged);

退出登录、切换账号或销毁会话列表页面时,应使用相同函数引用取消监听。