初始化

更新时间: 2024/07/26 13:39:23

在使用 IM UIKit(V10) 功能前,必须先对其进行初始化并完成登录,但不需要对 IM SDK 单独初始化。

IM UIKit 的核心类 IMKitClient,提供初始化、获取当前账号信息、IM 登录登出等能力。

前提条件

注意事项

由于 IM UIKit 的初始化与登录是通过底层调用 NIM SDK 接口来实现的,因此重复调用 IM UIKit 和 NIM SDK 的初始化与登录接口会相互覆盖传入的信息(包括推送配置信息)。

所以若用户同时集成 IM UIKit 和 NIM SDK,只需要调用一次初始化与登录接口即可。

初始化

  1. 在项目中引入需要的组件。

    示例代码:

    Swift
    import 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>
    ...
    
  2. 在应用启动时,通过调用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-C
    NIMSDKOption *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 异步回调
  • 示例代码

    Swift
    IMKitClient.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];
            */
        }
    }];
    

调用登录的方法时,将示例代码中的 accouttoken 分别替换为您的云信账号 ID 和 Token。

后续步骤

为保障通信安全,如果您在调试环境中的使用的是云信控制台生成的 IM 账号(测试用),请确保在后续的正式生产环境中,将其替换为通过 IM 服务端 API 生成的正式 IM 账号。

此文档是否对你有帮助?
有帮助
去反馈
  • 前提条件
  • 注意事项
  • 初始化
  • 登录
  • 后续步骤