登录 —— iOS
简介
在完成 SDK 的导入和初始化后,您可以选择是否要集成登录的流程。
不集成登录流程,也可以直接集成会议等大部分功能,这样能更快速地完成开发工作。
集成登录流程,可以在以上的功能基础上实现额外的功能(比如会议中邀请别人加入)。
如果您选择集成登录流程,请仔细阅读下列内容,来完成登录的流程。
基本交互
登录和登出都是异步的接口,在 iOS 侧定义了 JCApiDelegate protocol
,登录和登出的结果通过 JCApiDelegate
的回调函数通知 APP 界面(以下简称UI)。
具体实现如下:
UI 实现
JCApiDelegate protocol
方法//ViewController添加JCApiDelegate协议 @interface LoginViewController () <JCApiDelegate> //登录和登出的回调 - (void)stateChanged:(JCApiState)state stateCode:(JCApiStateCode)stateCode { }
设置代理
//self是实现JCApiDelegate的ViewController对象 [JCApiManager setDelegate:self];
登录
终端用自定义的账号和密码登录到 JusTalk Cloud 服务器,登录成功后方可发起会议等功能。
具体实现如下:
设置登录模式
//设置登录模式为指定的账号和密码登录 [JCApiManager setAccountMode:JCAccountModeAssignation];
调用登录接口
//userId和passwor是自定义的字符串,userId中不能包含 @ 和 : 字符,不能以 _ 开头 [JCApiManager loginWithUserId:@"Test_123" password:@"123"];
调用登录接口返回 JCOK 仅表明发起了登录的请求,登录成功或失败需通过回调函数来判断。
接收登录的回调
- (void)stateChanged:(JCApiState)state stateCode:(JCApiStateCode)stateCode { //当收到回调时 JCApiState是JCApiStateLogined,表明登录成功 if (state == JCApiStateLogined) { //登出成功后,可发起会议等业务功能 } else { } }
注:如果已经登录成功或者正在登录中,再重复调用登录接口是无效的。
登出
登出使终端从登录状态变为未登录,登出分两种情况:
- 调用登出的接口主动登出;
因同一个账号在另一台设备登录导致被登出。
比如账号abc已经在A设备登录了,此时B设备登录了账号abc就会导致A设备的登录状态变为未登录。
主动登出
UI 调用登出接口,调用接口成功仅表明发起了登出的请求,当 UI 收到登出状态改变的回调时,并且回调函数中的参数 JCApiState
为 JCApiStateInit
,才表明登出成功。
具体实现如下:
调用登出接口
[JCApiManager logout];
接收登出的回调
- (void)stateChanged:(JCApiState)state stateCode:(JCApiStateCode)stateCode { //当收到回调时 JCApiState是JCApiStateInit,表明登出成功 if (state == JCApiStateInit) { //登出后,不能发起会议等业务功能 } else { } }
被登出
当 UI 会收到被登出的回调时,并且回调函数中的参数 JCApiState
为 JCApiStateLogouted
,表明被登出。
- (void)stateChanged:(JCApiState)state stateCode:(JCApiStateCode)stateCode
{
//当收到回调时 JCApiState是JCApiStateLogouted,表明被登出
if (state == JCApiStateLogouted) {
//被登出后,不能发起会议等业务功能
}
}
查询登录状态
调用接口 isOnline
,查询终端当前登录状态。
//返回YES,表示终端已登录 。返回NO,表示未登录
BOOL ret = [JCApiManager isOnline];