Skip to content
能力中心
产品中心
应用市场
WebOffice
开发者后台

获取会话

SDK 在连接状态下会自动同步云端的会话列表并保存到本地数据库,你可以从本地数据库获取 SDK 保存的完整会话列表并根据相关会话属性自行决定展示方式。

获取会话列表

通过以下接口获取 SDK 在本地数据库保存的会话列表。获取到的会话列表按照最新消息时间倒序排列,置顶会话会排在最前。

接口定义

swift
func getChatList() -> [KIMChat]
Objective-C
- (NSArray<KIMChat *> *)getChatList;

代码示例

swift
let list = KIMCore.shared.getChatList()

监听会话列表变化

当接收到新消息、会话属性变更、会话已读未读等将导致会话列表数据或排序变更,将触发会话列表刷新。你可以通过设置代理 KIMChatListDelegate 的方式监听会话列表刷新变更。

接口定义

swift
func register(chatListDelegate: KIMChatListDelegate)
Objective-C
- (void)registerWithChatListDelegate:(id <KIMChatListDelegate> _Nonnull)chatListDelegate;

参数说明

属性返回值说明
chatListDelegateIKIMChatListDelegate监听代理

KIMChatListDelegate 说明:

方法名称参数返回值说明
chatListDelegateKIMChatListDelegateVoid会话列表更新
didUpdateChatListStatusstatus: KIMChatListStatusstatus: KIMChatListStatus
列表加载状态, 0 非加载状态 1 加载中 2 加载完成
Void会话列表加载状态更新, status:0 非加载状态 1 加载中 2 加载完成

代码示例

swift
KIMCore.shared.register(chatListDelegate: self)

获取会话列表中指定会话

获取本地数据

接口定义

swift
func getChat(chatId: String) -> KIMChat?
Objective-C
- (KIMChat * _Nullable)getChatWithChatId:(NSString *)chatId

参数说明

属性类型说明
chatIdString会话 ID

代码示例

swift
let chat = KIMCore.shared.getChat(chatId: chatId)

获取云端数据

接口定义

swift
func getChat(chatId: String, complete: ((_ chat: KIMChat?, _ error: KIMError?) -> Void)?)
Objective-C
- (void)getChatWithChatId:(NSString *)chatId complete:(void (^ _Nullable)(KIMChat * _Nullable, KIMError * _Nullable))complete;

参数说明

属性类型说明
chatIdString会话 ID
complete(KIMChat, KIMError) -> Void完成回调。 KIMChat:会话信息. KIMError:错误信息。

代码示例

swift
KIMCore.shared.getChat(chatId: chatId) { chat, error in

}

获取指定会话详情

接口定义

swift
func getChatInfo(chatId: String, complete: ((_ chatInfo: KIMChatInfo?, _ error: KIMError?) -> Void)?)
Objective-C
- (void)getChatInfoWithChatId:(NSString *)chatId complete:(void (^ _Nullable)(KIMChatInfo * _Nullable, KIMError * _Nullable))complete;

参数说明

参数类型说明
chatIdString会话 ID
complete(KIMChatInfo, KIMError) -> Void完成回调。 KIMChatInfo:会话详情信息. KIMError:错误信息。

代码示例

swift
KIMCore.shared.getChatInfo(chatId: chatId) { chatInfo, error in

}