初始化与登录

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

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

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

前提条件

注意事项

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

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

初始化

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

    示例代码:

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

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

  • 方法原型

    Swift
    // IM 初始化
    public func setupCoreKitIM(_ option: NIMSDKOption)
    
    Objective-C
    - (void)setupCoreKitIM:(NIMSDKOption * _Nonnull)option;
    
  • 参数说明

    NIMSDKOption 参数 是否必传 说明
    appKey 云信控制台获取到的 App Key
    apnsCername APNs 推送证书名,如不需要实现离线推送可不配置
    pkCername PushKit 推送证书名,如不需要实现离线推送可不配置
  • 示例代码:

    Swift
    swift  let option = NIMSDKOption()
      option.appKey = "your app key"
      option.apnsCername = "云信控制台配置的 APNS 推送证书名称"
      option.pkCername = "云信控制台配置的 PushKit 推送证书名称"
      IMKitClient.instance.setupCoreKitIM(option)
    
      // 初始化@功能(可选)
      let _ = NEAtMessageManager.instance
    
    Objective-C
    NIMSDKOption *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 异步回调
  • 示例代码

    Swift
        IMKitClient.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 账号。

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