登录 —— iOS

简介

在完成 SDK 的导入和初始化后,您可以选择是否要集成登录的流程。

  • 不集成登录流程,也可以直接集成会议等大部分功能,这样能更快速地完成开发工作。

  • 集成登录流程,可以在以上的功能基础上实现额外的功能(比如会议中邀请别人加入)。

如果您选择集成登录流程,请仔细阅读下列内容,来完成登录的流程。

基本交互

登录和登出都是异步的接口,在 iOS 侧定义了 JCApiDelegate protocol,登录和登出的结果通过 JCApiDelegate 的回调函数通知 APP 界面(以下简称UI)。

具体实现如下:

  1. UI 实现 JCApiDelegate protocol 方法

     //ViewController添加JCApiDelegate协议
     @interface LoginViewController () <JCApiDelegate>
    
     //登录和登出的回调
     - (void)stateChanged:(JCApiState)state stateCode:(JCApiStateCode)stateCode {
    
     }
    
  2. 设置代理

     //self是实现JCApiDelegate的ViewController对象
     [JCApiManager setDelegate:self];
    

登录

终端用自定义的账号和密码登录到 JusTalk Cloud 服务器,登录成功后方可发起会议等功能。

具体实现如下:

  1. 设置登录模式

     //设置登录模式为指定的账号和密码登录
     [JCApiManager setAccountMode:JCAccountModeAssignation];
    
  2. 调用登录接口

     //userId和passwor是自定义的字符串,userId中不能包含 @ 和 : 字符,不能以 _ 开头
     [JCApiManager loginWithUserId:@"Test_123" password:@"123"];
    

    调用登录接口返回 JCOK 仅表明发起了登录的请求,登录成功或失败需通过回调函数来判断。

  3. 接收登录的回调

     - (void)stateChanged:(JCApiState)state stateCode:(JCApiStateCode)stateCode 
     {
         //当收到回调时 JCApiState是JCApiStateLogined,表明登录成功
         if (state == JCApiStateLogined) {
             //登出成功后,可发起会议等业务功能    
         } else {
    
         }
     }
    

注:如果已经登录成功或者正在登录中,再重复调用登录接口是无效的。

登出

登出使终端从登录状态变为未登录,登出分两种情况:

  • 调用登出的接口主动登出;
  • 因同一个账号在另一台设备登录导致被登出。

    比如账号abc已经在A设备登录了,此时B设备登录了账号abc就会导致A设备的登录状态变为未登录。

主动登出

UI 调用登出接口,调用接口成功仅表明发起了登出的请求,当 UI 收到登出状态改变的回调时,并且回调函数中的参数 JCApiStateJCApiStateInit,才表明登出成功。

具体实现如下:

  1. 调用登出接口

     [JCApiManager logout];
    
  2. 接收登出的回调

     - (void)stateChanged:(JCApiState)state stateCode:(JCApiStateCode)stateCode 
     {
         //当收到回调时 JCApiState是JCApiStateInit,表明登出成功
         if (state == JCApiStateInit) {
             //登出后,不能发起会议等业务功能
         } else {
    
         }
     }
    

被登出

当 UI 会收到被登出的回调时,并且回调函数中的参数 JCApiStateJCApiStateLogouted,表明被登出。

- (void)stateChanged:(JCApiState)state stateCode:(JCApiStateCode)stateCode 
{
    //当收到回调时 JCApiState是JCApiStateLogouted,表明被登出
    if (state == JCApiStateLogouted) {
        //被登出后,不能发起会议等业务功能    
    }
}

查询登录状态

调用接口 isOnline,查询终端当前登录状态。

//返回YES,表示终端已登录 。返回NO,表示未登录
BOOL ret = [JCApiManager isOnline];