login method
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);
}
}