获取会话
提示
会话列表支持超级群
自 5.20.0 版本开始,SDK 支持在获取会话列表中返回超级群会话信息,以便于开发者根据业务需求对单聊、群聊、超级群会话列表进行混合排序展示;该功能需提交工单开启。
功能开启后,SDK 在连接成功后,从服务器拉取所有会话数据至本地内存中进行维护,并在开发者调用接口时,从内存中按查询条件返回相关会话数据。
注意
- 单聊、群聊会话同步完成后,SDK 将通知
Events.CONVERSATIONS_SYNCED事件; 超级群会话同步完成后,SDK 将通知Events.ULTRA_GROUP_ENABLE事件;建议在接收到以上两个事件后再拉取获取会话列表进行渲染,否则数据结果可能存在丢失、排序异常等问题。 - Electron 平台自 5.28.0 版本开始支持超级群业务。
- 会话列表结果中仅包含超级群的默认频道会话数据,不包含子频道会话。
分页获取会话列表
SDK 从 5.32.0 版本开始新增 createConversationListLoader 接口,用于在未来逐步统一和归拢所有的会话列表获取接口,以简化开发者集成流程。该接口在调用成功时,返回一个 ConversationListLoader 实例,通过调用该实例的 load() 方法分页加载会话列表数据。
警告
目前该接口暂不支持 Electron 平台。
接口
JavaScript
RongIMLib.createConversationListLoader(options)
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
options | IConversationListLoaderOptions | 是 | 查询条件参数 |
示例代码
JavaScript
// ...
// 定义查询条件
const options = {
conversationTypes: [ConversationType.PRIVATE, ConversationType.GROUP],
// 标签过滤器,可选参数;不传则不进行标签过滤
tagFilter: {
tagIds: [],
topPriority: false, // 是否按标签内置顶优先返回,仅当 tagIds 列表有值时有效
},
// 查询顺序
// 0 为降序(默认),从最新会话开始查询
// 1 为升序,从最早的会话开始查询
order: 0,
};
const { isOk, code, data: loader } = await RongIMLib.createConversationListLoader(options);
if (!isOk) {
console.log('创建 Loader 实例失败', code);
return;
}
// 开发者需要持续持有 loader 引用,以便在需要时加载更多会话
// 指定加载数量,有效值 [1, 100]
const res = await loader.load(10);
if (res.isOk) {
console.log('会话列表获取成功:', res.data);
} else {
console.log('会话列表获取失败:', res.code);
}
// ...