菊风已发布实时音视频2.0升级版(2.0版本说明),当前您正在访问1.0旧版本,点击此处可进入2.0升级版

# 登录

本章节将介绍如何初始化 HarmonyOS Next SDK 并登录。

# 初始化

在主线程调用 JCClient.create (opens new window),创建 JCClient (opens new window) 实例对象。传入获取到的 appKey ,即可初始化 JCClient (opens new window)

export class JCManager implements JCClientCallback {
// JCClient 对象
public client: JCClient | undefined;

    // 初始化函数
    initialize(context: Context, createParam: CreateParam): boolean {
      this.mContext = context
      // 登录类想
      this.client =
        JCClient.create(context, "用户 appKey", this, createParam);
      // 获取初始化状态(用来判断初始化状态)
      return this.client.getState() == ClientState.STATE_IDLE
    }
    // 所有登录接口回调的实现
    ...

}

初始化成功后,JCClient.ClientState (opens new window) 状态从 ClientState.STATE_NOT_INIT (opens new window)(未初始化) 变为 ClientState.STATE_IDLE (opens new window)(未登录)。

# 发起登录

SDK 初始化之后,即可进行登录的集成。登录接口调用流程如下所示: login

先创建 LoginParam (opens new window) 实例以调整登录参数。后调用 login (opens new window),发起登录: let mLoginParam = new LoginParam(); let logined = this.client?.login("userID", "password", this.mLoginParam);

  1. userID 用户名不能为空,可由英文、数字和 + 、 - 、 _ 、 . 组成(特殊字符不能作为第一个字符),大小写不敏感,长度不能超过 64 个字符。
  2. password 密码,不能为空,长度不能超过 128 字符。
  3. 调用该接口返回 true 时只代表调用接口成功,并不代表登录成功。登录的结果会通过 onLogin (opens new window) 回调上报。

调用接口成功后,首先会触发登录状态改变回调 onClientStateChange (opens new window)。您可以通过重写 onClientStateChange (opens new window) 执行逻辑操作。

onClientStateChange(state: number, oldState: number): void {
    if (state == ClientState.STATE_IDLE) { // 未登录...
    }
    else if (state == ClientState.STATE_LOGINING) { // 正在登录...
    }
    else if (state == ClientState.STATE_LOGINED) { // 登录成功...
    }
    else if (state == ClientState.STATE_LOGOUTING) { // 登出中...
    }
}

之后触发 onLogin (opens new window) 回调。您可以通过重写 onLogin (opens new window) 执行逻辑操作。

onLogin(result: boolean, reason: number): void {
    if (result) {// 登录成功
    ...
    }
    if (reason == ClientReason.REASON_AUTH) {// 账号密码错误
    ...
    }
}

登录成功之后,SDK 会自动保持与服务器的连接状态,直到用户主动调用登出接口,或者因为帐号在其他设备登录导致该设备登出。登录成功/失败原因 参考 ClientReason (opens new window)

# 登出

登出接口调用流程如下所示: logout

调用 logout 可以发起登出。

onLogout(reason: number): void {
    if (reason == ClientReason.REASON_SERVER_LOGOUT) {// 强制登出...
    }
}

更多登出原因参考: ClientReason (opens new window)

最后更新时间: 2025-5-13 6:06:58 ├F10: PM┤