初始化与登录
更新时间: 2025/09/11 16:13:31
在使用圈组 UIKit 功能前,必须先对其进行初始化并完成登录,但无需要对 NIM SDK 单独初始化。
圈组 UIKit 的核心类 QChatKitClient,提供初始化、登录、获取当前账号信息等能力。
前提条件
- 已完成组件导入。
- 已注册云信 IM 账号,获取 accid 和 token。
- 已开通圈组能力。
初始化
-
在项目中引入需要的组件。
示例代码:
Swiftimport NECoreKit import NECoreIM2Kit import NEQChatUIKit import NERtcCallUIKit ...Objective-C#import <NECoreKit/NECoreKit-Swift.h> #import <NECoreIM2Kit/NECoreIM2Kit-Swift.h> #import <NEQChatKit/NEQChatKit-Swift.h> #import <NEQChatUIKit/NEQChatUIKit-Swift.h> #import <NERtcCallUIKit/NERtcCallUIKit.h> ... -
在应用启动时,通过调用
setupIM2方法实现初始化。初始化必须在应用的生命周期内进行,且只可进行一次。
-
方法原型
SwiftSwift// IM 初始化 open func setupIM2(_ option: NIMSDKOption, _ v2Option: V2NIMSDKOption)Objective-CObjective-C- (void) setupIM2:(NIMSDKOption *) option :(V2NIMSDKOption *) v2Option; -
参数说明
NIMSDKOption参数说明如下:NIMSDKOption参数是否必传 说明 appKey是 从 网易云信控制台 获取到的 App Key apnsCername否 APNs 推送证书名,如不需要实现离线推送可不配置 pkCername否 PushKit 推送证书名,如不需要实现离线推送可不配置 avoidNosAccelerationBuckets否 不走 NOS 域名加速的桶名集合 v2否 是否启用 v2 API 该字段已废弃。若仍需要使用 V1 的登录接口,请设置 V2NIMSDKOption.useV1Login字段V2NIMSDKOption参数说明如下:V2NIMSDKOption参数是否必传 说明 useV1Login否 是否使用旧的登录接口,默认 NO,不使用 enableV2CloudConversation否 是否使用 V2 云端会话,默认 NO,不使用 SDK 默认使用本地会话,若需要使用云端会话功能,除了在组件导入时,引入云端会话外,还需要在初始化时,将
enableV2CloudConversation设置为 YES。只有设置为 YES 后,才能正常使用云端会话服务。 -
示例代码:
SwiftSwift// init // 设置 IM SDK 的配置项,包括 AppKey,推送配置和一些全局配置等 let option = NIMSDKOption() option.appKey = "your app key" option.apnsCername = "网易云信控制台配置的 APNS 推送证书名称" option.pkCername = "网易云信控制台配置的 PushKit 推送证书名称" // 设置 IM SDK V2 的配置项,包括是否使用旧的登录接口和是否使用云端会话 let v2Option = V2NIMSDKOption() v2Option.enableV2CloudConversation = false // 初始化 IM UIKit,初始化 Kit 层和 IM SDK,将配置信息透传给 IM SDK。无需再次初始化 IM SDK IMKitClient.instance.setupIM2(option, v2Option)Objective-CObjective-C// 设置 IM SDK 的配置项,包括 AppKey,推送配置和一些全局配置等 NIMSDKOption *option = [NIMSDKOption optionWithAppKey:AppKey]; // 设置 IM SDK V2 的配置项,包括是否使用旧的登录接口和是否使用云端会话 V2NIMSDKOption *v2Option = [[V2NIMSDKOption alloc] init]; v2Option.enableV2CloudConversation = NO; // 初始化 IM UIKit,初始化 Kit 层和 IM SDK,将配置信息透传给 IM SDK。无需再次初始化 IM SDK [IMKitClient.instance setupIM2:option :v2Option];
-
登录
在完成初始化后,调用 login 方法登录 IM。
-
方法原型
SwiftSwift// IM 初始化 public func login(_ accountId: String, _ token: String?, _ option: V2NIMLoginOption?, _ completion: @escaping (NSError?) -> Void)Objective-CObjective-C- (void)loginWithAccountId:(NSString *)accountId token:(NSString *)token option:(V2NIMLoginOption *)option completion:(void (^)(NSError * _Nullable))completion; -
参数说明
参数 类型 说明 account String 网易云信 IM 账号 token String 网易云信 IM 账号对应的 token option V2NIMLoginOption 登录选项 completion (Error?) -> Void 异步回调 -
示例代码
SwiftSwiftIMKitClient.instance.login(account, token, nil) { error in if let err = error { print("IMKitClient login error : ", err) }else { //在登录成功回调中初始化路由以及配置各个模块首页 /* weakSelf?.setupTabbar() */ } }Objective-C[[IMKitClient instance] login:@"account" :@"token" :nil :^(NSError * _Nullable error) { if (error != nil) { NSLog(@"IMKitClient login error : %@", [error description]); } else { //在登录成功回调中初始化路由以及配置各个模块首页 /* [weakSelf setupTabbar]; */ } }];调用登录的方法时,将示例代码中的
accout和token分别替换为您的 IM 账号 ID 和 Token。
后续步骤
为保障通信安全,如果您在调试环境中的使用的是云信控制台生成的 IM 账号(测试用),请确保在后续的正式生产环境中,将其替换为通过 IM 服务端 API 生成的正式 IM 账号。
此文档是否对你有帮助?





