浏览 SDKs · React Native
SDKsReact Native

获取会话列表

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

复制

使用 getConversationListSplit() 分页获取会话。

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草稿更新时间。
isPrivateChatboolean是否开启私聊阅后即焚。
burnDurationnumber私聊阅后即焚时长。
isMsgDestructboolean是否开启服务端消息定期删除。
msgDestructTimenumber服务端消息定期删除周期。
isPinnedboolean会话是否置顶。
isMarked 商业版boolean会话是否已标记。
isNotInGroupboolean当前账号是否已不在该群组中。
attachedInfostringSDK 附加信息。
exstring(可选)会话扩展字符串。
remark 商业版string(可选)会话备注。

拉取会话列表时,应按 conversationID 合并分页结果去重,避免同一会话重复出现在列表中。刷新列表时从 offset: 0 重新读取。

监听会话变化

新建会话时触发 OnNewConversation,已有会话发生变化时触发 OnConversationChanged。两个事件的回调参数都是 ConversationItem[]

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);

退出登录、切换账号或销毁会话列表状态时,取消监听。