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

会话管理

协作中台 SDK 提供了专门用于会话管理的接口。

创建单聊会话

用于一对一的单人聊天。

接口定义

swift
func createP2PChat(userId: String, completion: ((_ chatInfo: KIMCreateChatInfo?, _ error: KIMError?) -> Void)?)
Objective-C
- (void)createP2PChatWithUserId:(NSString *)userId completion:(void (^)(KIMCreateChatInfo *, KIMError *))completion;

参数说明

参数类型说明
userIdStringSDK内部使用的用户Id。如果开发者只知道自身的账号体系下的用户Id,可以通过传入thirdUnionId调用获取用户方法 getUsers(thirdUninIds: [String], completion: @escaping ((_ users: [KIMUser], _ error: KIMError?) -> Void)) 得到SDK内部使用的用户Id。
completion(_ chatInfo: KIMCreateChatInfo?, _ error: KIMError?) -> Void)?结果回调。
chatInfo:创建成功后的会话信息。
error: 错误信息,失败时有值。

代码示例

swift
KIM.chatModule.createP2PChat(userId: self.userId) { [weak self] chatInfo, error in
    guard let chatInfo = chatInfo, error == nil else {
        debugPrint("创建失败")
        return
    }
    let vc = KIMChatMessageViewController(chatId: chatInfo.chatId)
    self?.navigationController?.pushViewController(vc, animated: true)
}

创建群聊会话

用于多人聊天,可以是一个或多个人。

接口定义

swift
func createGroupChat(chatName: String?, userIds: [String], completion: ((_ chatInfo: KIMCreateChatInfo?, _ error: KIMError?) -> Void)?)
Objective-C
- (void)createGroupChatWithChatName:(NSString *)chatName userIds:(NSArray<NSString *> *)userIds completion:(void (^)(KIMCreateChatInfo *, KIMError *))completion;

参数说明

参数类型说明
chatNameString?会话名称,不传默认为群成员名称组合如: "name1、name2、name3"
userIds[String]群成员列表, userId 为SDK内部使用的用户Id。如果开发者只知道自身的账号体系下的用户Id,可以通过传入thirdUnionId调用获取用户方法 getUsers(thirdUninIds: [String], completion: @escaping ((_ users: [KIMUser], _ error: KIMError?) -> Void)) 得到SDK内部使用的用户Id。
completion(_ chatInfo: KIMCreateChatInfo?, _ error: KIMError?) -> Void)?结果回调。
chatInfo:创建成功后的会话信息。
error: 错误信息,失败时有值。

代码示例

swift
KIM.chatModule.createGroupChat(chatName: nil, userIds: userIds) { chatInfo, error in
    guard let chatInfo = chatInfo, error == nil else {
        debugPrint("创建失败")
        return
    }
    let vc = KIMChatMessageViewController(chatId: chatInfo.chatId)
    self?.navigationController?.pushViewController(vc, animated: true)
}

获取指定群成员信息

接口定义

swift
func getChatMemberInfo(chatId: String, userId: String) -> KIMDynamicChatMemberInfo
Objective-C
- (KIMDynamicChatMemberInfo *)getChatMemberInfoWithChatId:(NSString *)chatId userId:(NSString *)userId;

参数说明

参数类型说明
chatIdString会话 id
userIdStringSDK内部使用的用户Id。如果开发者只知道自身的账号体系下的用户Id,可以通过传入thirdUnionId调用获取用户方法 getUsers(thirdUninIds: [String], completion: @escaping ((_ users: [KIMUser], _ error: KIMError?) -> Void)) 得到SDK内部使用的用户Id。

该方法返回值为 KIMDynamicChatMemberInfo 对象,可以通过 KIMDynamicChatMemberInfo 提供的 attach(changedAction: ValueChanged?) 方法添加信息改变监听闭包,当信息发生改变时会调用闭包返回 KIMChatMemberInfo

KIMChatMemberInfo 说明

属性类型说明
chatIdString成员会话id。
userIdString成员用户Id。该 userId 为SDK内部使用的用户Id。如果开发者只知道自身的账号体系下的用户Id,可以通过传入thirdUnionId调用获取用户方法 getUsers(thirdUninIds: [String], completion: @escaping ((_ users: [KIMUser], _ error: KIMError?) -> Void)) 得到SDK内部使用的用户Id。
nameString用户名称。
markNameString备注。
groupNameString群昵称。
avatarString群成员头像。

代码示例

swift
let dynamicMember = KIM.chatModule.getChatMemberInfo(chatId: "", userId: "")
dynamicMember.attach { memberInfo in
    debugPrint("\(memberInfo?.groupName)") 
}