会话管理
协作中台 SDK 提供了专门用于会话管理的接口。
创建单聊会话
用于一对一的单人聊天。
接口定义
kotlin
fun createP2PChat(userId: String, callback: callback: KIMResultCallback1<KIMCreateChatInfo>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
userId | String | SDK内部使用的用户Id。如果开发者只知道自身的账号体系下的用户Id,可以通过传入thirdUnionId调用获取用户方法 getUserInfosByThirdIds(thirdUninIds: Array<String>, onCompletion : ((users: Array<KIMUser>?, error: KIMError) -> Unit)) 得到SDK内部使用的用户Id。 |
callback | KIMResultCallback1<KIMCreateChatInfo> | 结果 onSuccess回调: chatInfo:创建成功后的会话信息。 onFailed回调: error: 错误信息 |
代码示例
kotlin
KIM.chatModule.createP2PChat(userId, object : KIMResultCallback1<KIMCreateChatInfo> {
override fun onSuccess(data: KIMCreateChatInfo) {
WLog.debugLog("创建单聊成功, data = $data")
val args =
KIMMessageListFragment.defaultArguments(data.chatId, "")
KIM.getService().goPage(
KIMMessageListFragment::class.java.getPageName(),
this@ChatTestActivity,
args
)
}
override fun onFailed(error: KIMError) {
WLog.debugLog("创建单聊失败, error = $error")
}
})
创建群聊会话
用于多人聊天,可以是一个或多个人。
接口定义
kotlin
fun createGroupChat(chatName: String?, userIds: List<String>, callback: KIMResultCallback1<KIMCreateChatInfo>)
参数说明
参数 | 类型 | 说明 |
---|---|---|
chatName | String? | 不传默认为群成员名称组合如: "name1、name2、name3" |
userIds | List<String> | 群成员列表, userId 为SDK内部使用的用户Id。如果开发者只知道自身的账号体系下的用户Id,可以通过传入thirdUnionId调用获取用户方法 getUserInfosByThirdIds(thirdUninIds: Array<String>, onCompletion : ((users: Array<KIMUser>?, error: KIMError) -> Unit)) 得到SDK内部使用的用户Id。 |
callback | KIMResultCallback1<KIMCreateChatInfo> | 结果回调 onSuccess回调: chatInfo:创建成功后的会话信息。 onFailed回调: error: 错误信息 |
代码示例
kotlin
KIM.chatModule.createGroupChat(getChatName(),contactUsers?.map { it.userId.toString() }?.toList() ?: emptyList(), object : KIMResultCallback1<KIMCreateChatInfo> {
override fun onSuccess(data: KIMCreateChatInfo) {
WLog.debugLog("创建群聊成功, data = $data")
KIM.getService().goPage(
KIMChatListFragment::class.java.getPageName(),
this@ChatTestActivity,
Bundle()
)
}
override fun onFailed(error: KIMError) {
WLog.debugLog("创建群聊失败, error = $error")
}
})
查询指定群成员信息
接口定义
kotlin
fun getChatMemberInfo(chatId: String, userId: String): LiveData<KIMChatMemberInfo>
参数说明
参数 | 类型 | 说明 |
---|---|---|
chatId | String | 会话 id |
userId | String | SDK内部使用的用户Id。如果开发者只知道自身的账号体系下的用户Id,可以通过传入thirdUnionId调用获取用户方法 getUserInfosByThirdIds(thirdUninIds: Array<String>, onCompletion : ((users: Array<KIMUser>?, error: KIMError) -> Unit)) 得到SDK内部使用的用户Id。 |
该方法返回值为 LiveData<KIMChatMemberInfo>
对象,可通过对LiveData添加监听获取最新的KIMChatMemberInfo
数据
KIMChatMemberInfo
说明:
属性 | 类型 | 说明 |
---|---|---|
name | String | 用户名称 |
markName | String | 备注 |
groupName | String | 群昵称 |
avatar | String | 群成员头像 |
代码示例
kotlin
KIM.chatModule.getChatMemberInfo(chatId, userId).observe(this) {
WLog.debugLog("获取聊天成员信息成功, data = $it")
})