初始化
更新时间: 2024/07/26 13:39:23
在使用 IM UIKit(V10) 功能前,必须先对其进行初始化并完成登录,但不需要对 IM SDK 单独初始化。
IM UIKit 的核心类 IMKitClient
,提供初始化、获取当前账号信息、IM 登录登出等能力。
前提条件
- 已完成组件导入。
- 已注册云信 IM 账号,获取 account_id 和 token。
注意事项
由于 IM UIKit 的初始化与登录是通过底层调用 NIM SDK 接口来实现的,因此重复调用 IM UIKit 和 NIM SDK 的初始化与登录接口会相互覆盖传入的信息(包括推送配置信息)。
所以若用户同时集成 IM UIKit 和 NIM SDK,只需要调用一次初始化与登录接口即可。
初始化
-
在项目中引入需要的组件。
示例代码:
Swiftimport NECoreKit import NECoreIM2Kit import NEChatKit import NEChatUIKit import NERtcCallUIKit ...
Objective-C#import <NECoreKit/NECoreKit-Swift.h> #import <NECoreIM2Kit/NECoreIM2Kit-Swift.h> #import <NEChatKit/NEChatKit-Swift.h> #import <NEChatUIKit/NEChatUIKit-Swift.h> #import <NERtcCallUIKit/NERtcCallUIKit.h> ...
-
在应用启动时,通过调用
login
方法实现初始化。
初始化必须在应用的生命周期内进行,且只可进行一次。
-
方法原型
Swift// IM 初始化 public func setupIM(_ option: NIMSDKOption)
Objective-C- (void)setupIMWithOption:(NIMSDKOption *)option;
-
参数说明
NIMSDKOption
参数是否必传 说明 appKey
是 云信控制台获取到的 App Key apnsCername
否 APNs 推送证书名,如不需要实现离线推送可不配置 pkCername
否 PushKit 推送证书名,如不需要实现离线推送可不配置 avoidNosAccelerationBuckets
否 不走 NOS 域名加速的桶名集合 v2
否 启用 V10 版本的 API -
示例代码:
Swift// init let option = NIMSDKOption() option.v2 = true option.appKey = "your app key" option.apnsCername = "云信控制台配置的 APNS 推送证书名称" option.pkCername = "云信控制台配置的 PushKit 推送证书名称" IMKitClient.instance.setupIM(option) // @功能初始化 NEAtMessageManager.setupInstance()
Objective-CNIMSDKOption *option = [NIMSDKOption optionWithAppKey:AppKey]; option.v2 = YES; option.apnsCername = @""; option.pkCername = @""; [[IMKitClient instance] setupIM:option]; [NEAtMessageManager setupInstance];
登录
在完成初始化后,调用 login
方法登录 IM。
-
方法原型
Swift// IM 初始化 public func login(_ accountId: String, _ token: String?, _ option: V2NIMLoginOption?, _ completion: @escaping (NSError?) -> Void)
Objective-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 异步回调 -
示例代码
SwiftIMKitClient.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
分别替换为您的云信账号 ID 和 Token。
后续步骤
为保障通信安全,如果您在调试环境中的使用的是云信控制台生成的 IM 账号(测试用),请确保在后续的正式生产环境中,将其替换为通过 IM 服务端 API 生成的正式 IM 账号。
此文档是否对你有帮助?