初始化与登录
更新时间: 2024/07/26 13:39:23
在使用 IM UIKit 功能前,必须先对其进行初始化并完成登录,但不需要对 IM SDK 单独初始化。
IM UIKit 的核心类 IMKitClient
,提供初始化、获取当前账号信息、IM 登录登出等能力。
前提条件
- 已完成组件导入。
- 已注册云信 IM 账号,获取 accid 和 token。
注意事项
由于 IM UIKit 的初始化与登录是通过底层调用 NIM SDK 接口来实现的,因此重复调用 IM UIKit 和 NIM SDK 的初始化与登录接口会相互覆盖传入的信息(包括推送配置信息)。
所以若用户同时集成 IM UIKit 和 NIM SDK,只需要调用一次初始化与登录接口即可。
初始化
-
在项目中引入需要的组件。
示例代码:
Swiftimport NECoreKit import NECoreIMKit import NEChatKit import NEChatUIKit import NERtcCallUIKit ...
Objective-C#import <NECoreKit/NECoreKit-Swift.h> #import <NECoreIMKit/NECoreIMKit-Swift.h> #import <NEChatKit/NEChatKit-Swift.h> #import <NEChatUIKit/NEChatUIKit-Swift.h> #import <NERtcCallUIKit/NERtcCallUIKit.h> ...
-
在应用启动时,通过调用
setupCoreKitIM
方法实现初始化。
初始化必须在应用的生命周期内进行,且只可进行一次。
-
方法原型
Swift// IM 初始化 public func setupCoreKitIM(_ option: NIMSDKOption)
Objective-C- (void)setupCoreKitIM:(NIMSDKOption * _Nonnull)option;
-
参数说明
NIMSDKOption
参数是否必传 说明 appKey
是 云信控制台获取到的 App Key apnsCername
否 APNs 推送证书名,如不需要实现离线推送可不配置 pkCername
否 PushKit 推送证书名,如不需要实现离线推送可不配置 -
示例代码:
Swiftswift
let option = NIMSDKOption() option.appKey = "your app key" option.apnsCername = "云信控制台配置的 APNS 推送证书名称" option.pkCername = "云信控制台配置的 PushKit 推送证书名称" IMKitClient.instance.setupCoreKitIM(option) // 初始化@功能(可选) let _ = NEAtMessageManager.instance
Objective-CNIMSDKOption *option = [NIMSDKOption optionWithAppKey:AppKey]; option.apnsCername = @""; option.pkCername = @""; [[IMKitClient instance] setupCoreKitIM:option]; // 初始化@功能(可选) NEAtMessageManager * _ = [NEAtMessageManager instance];
登录
在完成初始化后,调用 loginIM
方法登录 IM。
-
方法原型
Swift//登录IM public func loginIM(_ account: String, _ token: String, _ block: @escaping (Error?) -> Void)
Objective-C//登录IM - (void)loginIM:(NSString * _Nonnull)account :(NSString * _Nonnull)token :(void (^ _Nonnull)(NSError * _Nullable))block;
-
参数说明
参数 类型 说明 account String 云信 IM 账号(accid) token String 云信 IM 账号对应的 token block (Error?) -> Void 异步回调 -
示例代码
SwiftIMKitClient.instance.loginIM(accid, token) { error in if let err = error { print("NEKitCore login error : ", err) }else { //在登录成功回调中初始化路由以及配置各个模块首页 /* weakSelf?.setupTabbar() */ } }
Objective-C[[IMKitClient instance] loginIM:@"accid" :@"token" :^(NSError * _Nullable error) { if (error != nil) { NSLog(@"NEKitCore login error : %@", [error description]); } else { //在登录成功回调中初始化路由以及配置各个模块首页 /* [weakSelf setupTabbar]; */ } }];
后续步骤
为保障通信安全,如果您在调试环境中的使用的是云信控制台生成的 IM 账号(测试用),请确保在后续的正式生产环境中,将其替换为通过 IM 服务端 API 生成的正式 IM 账号。
此文档是否对你有帮助?