初始化与登录

更新时间: 2025/09/11 16:13:31

在使用圈组 UIKit 功能前,必须先对其进行初始化并完成登录,但无需要对 NIM SDK 单独初始化。

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

前提条件

初始化

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

    示例代码:

    Swift
    import 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>
    ...
    
  2. 在应用启动时,通过调用 setupIM2 方法实现初始化。

    初始化必须在应用的生命周期内进行,且只可进行一次。

    • 方法原型

      Swift
      Swift// IM 初始化
      open func setupIM2(_ option: NIMSDKOption, _ v2Option: V2NIMSDKOption)
      
      Objective-C
      Objective-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 后,才能正常使用云端会话服务。

    • 示例代码

      Swift
      Swift// 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-C
      Objective-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。

  • 方法原型

    Swift
    Swift// IM 初始化
    public func login(_ accountId: String,
                          _ token: String?,
                         _ option: V2NIMLoginOption?,
                     _ completion: @escaping (NSError?) -> Void)
    
    Objective-C
    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
    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];
            */
        }
    }];
    

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

后续步骤

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

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