SDKsFlutter
获取会话列表
使用 OpenIM Flutter SDK 分页获取当前用户的会话列表。
会话列表属于当前登录用户。每条 ConversationInfo 都包含会话标识、未读数、最后一条消息、置顶和草稿等状态。使用分页接口读取会话,不要使用一次加载完整列表的接口。
分页获取会话
使用 getConversationListSplit() 分页获取会话。第一页从 offset: 0 开始。
const pageSize = 50;
Future<List<ConversationInfo>> loadConversationPage(int offset) async {
final page = await OpenIM.iMManager.conversationManager
.getConversationListSplit(offset: offset, count: pageSize);
mergeConversations(page);
return page;
}参数说明
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
offset | int | 必填 | 从零开始的分页偏移量;刷新时重置为 0。 |
count | int | 必填 | 本页期望返回的会话数量。 |
Future 成功后返回当前页的 List<ConversationInfo>。继续加载时按已经请求的条目数量推进 offset;按 conversationID 去重。返回数量小于 count 表示到达末尾,主动刷新时应清空分页状态并从 0 重载。
保持列表同步
getConversationListSplit() 只建立快照,不触发会话回调。以下处理函数应纳入应用唯一的 OnConversationListener:
void handleNewConversations(List<ConversationInfo> conversations) {
mergeConversations(conversations);
}
void handleConversationsChanged(List<ConversationInfo> conversations) {
mergeConversations(conversations);
}onNewConversation 和 onConversationChanged 都携带 List<ConversationInfo>,应按 conversationID 合并。组合 listener 与唯一设置入口见事件概览。
不要用已加入群组列表替代会话列表。用户可能已经加入群组但尚未产生对应会话,也可能退出群组后仍保留历史会话记录。
这个页面有帮助吗?