会话盒子
会话盒子介绍
会话盒子指拥有共同性质的一类会话的合集,由会话设置属性boxType确定,可将相同类型的会话聚合为一类列表,减少主列表消息干扰。
获取会话盒子列表
接口定义
kotlin
fun getBoxList(callback: IResultCallback<List<KIMCoreBox>>)参数说明
| 参数 | 类型 | 返回值 | 说明 |
|---|---|---|---|
| callback | IResultCallback<List<KIMCoreBox>> | 回调 |
下表列出了 KIMCoreBox 中提供的主要方法
| 方法名 | 返回值 | 说明 |
|---|---|---|
| getBoxType | int | 盒子类型 Constant.BOX_TYPE |
| getAvatar | string | 盒子头像 |
| getName | string | 盒子名称 |
| isStickied | bool | 是否置顶 |
| getLastTime | long | 最后消息更新时间,单位ns |
| getLastReadTime | long | 上次读取消息时间,单位ns |
| getUnReadCount | int | 未读数 |
代码示例
kotlin
KIMCore.instance().getBoxList(object :IResultCallback<List<KIMCoreBox>>{
override fun onSuccess(result: List<KIMCoreBox>?) {
TODO()
}
override fun onError(errorCode: ErrorCode) {
TODO()
}
})获取指定盒子类型的会话列表
接口定义
kotlin
fun getChatListByType(chatTypes: List<Int>, callback: IResultCallback<List<KIMCoreChat>>)代码示例
kotlin
KIMCore.instance().getChatListByBoxType(listOf(Constant.BOX_TYPE.ASSISTANT_BOX),
object : IResultCallback<Map<Int, List<KIMCoreChat>>> {
override fun onSuccess(result: Map<Int, List<KIMCoreChat>>?) {
TODO()
}
override fun onError(errorCode: ErrorCode) {
TODO()
}
})获取指定类型会话盒子未读数
接口定义
kotlin
fun boxUnreadTotalCount(boxType: Int): LiveData<Int>代码示例
kotlin
KIMCore.instance().boxUnreadTotalCount(boxType).observe()操作会话盒子
接口定义
kotlin
fun setBoxProps(action: String, boxType: Int, callback: IResultCallback<Boolean>?)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| action | String | 操作类型 Constant.BOX_PROP |
| boxType | int | 盒子类型 Constant.BOX_TYPE |
| callback | IResultCallback<Boolean> | 回调 |
Constant.BOX_TYPE值枚举:
| 类型 | 值 | 说明 |
|---|---|---|
| BOX_PROP.STICKY | sticky | 置顶 |
| BOX_PROP.UN_STICKY | unsticky | 取消置顶 |
| BOX_PROP.READ | read | 已读 |
代码示例
kotlin
KIMCore.instance().setBoxProps(action,boxType,object :IResultCallback<Boolean>{
override fun onSuccess(result: Boolean?) {
TODO()
}
override fun onError(errorCode: ErrorCode) {
TODO()
}
})监听会话盒子变化
接口定义
kotlin
//添加监听器
fun addBoxPropsListener(owner: LifecycleOwner?, listener: KIMBoxPropsListener)
//移除监听器
fun removeBoxPropsListener(listener: KIMBoxPropsListener)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| listener | KIMBoxPropsListener | 监听器 |
KIMBoxPropsListener
| 方法 | 参数 | 返回值 | 说明 |
|---|---|---|---|
| change | int boxType 变更状态的 boxType String prop 具体变化类型 Constant.BOX_PROP long seq 当 prop为 Constant.BOX_PROP#READ,表示已读的时间戳。 | 回调方法 |
代码示例
kotlin
KIMCore.instance().addBoxPropsListener(owner, object : KIMBoxPropsListener {
override fun change(boxType: Int, prop: String, seq: Long) {
TODO()
}
})kotlin
KIMCore.instance().removeBoxPropsListener(listener)