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

会话盒子

会话盒子介绍

会话盒子指拥有共同性质的一类会话的合集,由会话设置属性boxType确定,可将相同类型的会话聚合为一类列表,减少主列表消息干扰。

获取会话盒子列表

接口定义

swift
func getBoxList() -> [KIMBoxInfo]
Objective-C
- (NSArray<KIMBoxInfo *> *)getBoxList;

参数说明

KIMBoxInfo 说明

属性类型说明
typeInt盒子类型, KIMChatBoxType 枚举值。 0: none 2: 消息助手
nameString盒子名称
avatarString盒子头像
lastReadTimeInt64最新已读时间 ns
settingSetting相关设置
bizInfoString业务相关信息

Setting 说明

属性类型说明
stickiedBool是否置顶

代码示例

swift
let list = KIMCore.shared.getBoxList()

获取指定盒子类型的会话列表

如果需要获取指定会话盒子类型下的会话列表,可以通过获取会话列表,然后再筛选对应的 boxType 得到。

代码示例

swift
let boxType = KIMBoxType.assistant.rawValue
let boxChatList = KIMCore.shared.getChatList().filter({ $0.settings.boxType == boxType })

获取指定类型会话盒子未读数

如果需要获取指定类型会话盒子未读数,可以通过获取会话列表筛选出指定盒子类型的会话,然后通过 unreadCount 属性计算出总的未读数。

代码示例

swift
let boxType = KIMBoxType.assistant.rawValue
let boxChatList = KIMCore.shared.getChatList().filter({ $0.settings.boxType == boxType })
let totalUnread = boxChatList.reduce(0, { $0+$1.unreadCount })

清除指定类型会话盒子未读数

接口定义

swift
func clearBoxUnread(type: Int, complete: ((_ success: Bool, _ error: KIMError?) -> Void)?)
Objective-C
- (void)clearBoxUnreadWithType:(NSInteger)type complete:(void (^ _Nullable)(BOOL, KIMError * _Nullable))complete;

参数说明

参数类型说明
typeInt盒子类型, KIMChatBoxType 枚举值。 0: none 2: 消息助手
complete(_ success: Bool, _ error: KIMError?) -> Void)?完成回调,success:是否操作成功;error:错误信息

代码示例

swift
KIMCore.shared.clearBoxUnread(type: type) { success, error in

}

操作会话盒子

接口定义

swift
func setBox(type: Int, action: String, complete: ((_ success: Bool, _ error: KIMError?) -> Void)?)
Objective-C
- (void)setBoxWithType:(NSInteger)type action:(NSString *)action complete:(void (^ _Nullable)(BOOL, KIMError * _Nullable))complete;

参数说明

参数类型说明
typeInt盒子类型, KIMChatBoxType 枚举值。 0: none 2: 消息助手
actionString类型操作, KIMBoxAction 枚举值。 sticky:置顶 unsticky:取消置顶
complete(_ success: Bool, _ error: KIMError?) -> Void)?完成回调。 success:是否操作成功 error:错误信息

代码示例

swift
KIMCore.shared.setBox(type: type, action: action) { success, error in

}

监听会话盒子变化

可以通过注册监听会话列表代理 KIMChatListDelegate 来监听会话盒子变化。

接口定义

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

参数说明

参数类型说明
chatListDelegateKIMChatListDelegate监听代理

KIMChatListDelegate 说明:

方法参数返回值说明
didUpdateBoxListlist: [KIMBoxInfo] 会话盒子列表, finish: Bool 是否完成Void更新聚合类型回调

代码示例

swift
KIMCore.shared.register(chatListDelegate: self)