login method

  1. @override
Future<ActionCallback> login(
  1. int sdkAppId,
  2. String userId,
  3. String userSig
)
override

Implementation

@override
Future<ActionCallback> login(
    int sdkAppId, String userId, String userSig) async {
  mSdkAppId = sdkAppId;
  mCurUserId = userId;
  mCurUserSig = userSig;

  if (!mIsInitIMSDK) {
    //初始化SDK
    V2TimValueCallback<bool> initRes = await timManager.initSDK(
        sdkAppID: sdkAppId, //填入在控制台上申请的sdkappid
        loglevel: LogLevelEnum.V2TIM_LOG_ERROR,
        listener: V2TimSDKListener(onKickedOffline: () {
          TRTCCallingDelegate type = TRTCCallingDelegate.onKickedOffline;
          emitEvent(type, {});
        }));
    if (initRes.code != 0) {
      //初始化sdk错误
      return ActionCallback(code: 0, desc: 'init im sdk error');
    }
  }
  mIsInitIMSDK = true;

  // 登陆到 IM
  String? loginedUserId = (await timManager.getLoginUser()).data;

  if (loginedUserId != null && loginedUserId == userId) {
    mIsLogin = true;
    return ActionCallback(code: 0, desc: 'login im success');
  }
  V2TimCallback loginRes =
      await timManager.login(userID: userId, userSig: userSig);
  if (loginRes.code == 0) {
    mIsLogin = true;
    return ActionCallback(code: 0, desc: 'login im success');
  } else {
    return ActionCallback(code: codeErr, desc: loginRes.desc);
  }
}