initSDK method

Future<bool> initSDK({
  1. required int sdkAppID,
  2. LogLevelEnum logLevel = LogLevelEnum.V2TIM_LOG_DEBUG,
  3. V2TimSDKListener? listener,
  4. String? initPath,
  5. String? logPath,
  6. required int uiPlatform,
  7. bool? showImLog,
  8. Map<String, dynamic>? networkInfo,
})

Implementation

Future<bool> initSDK({
  required int sdkAppID,
  LogLevelEnum logLevel = LogLevelEnum.V2TIM_LOG_DEBUG,
  V2TimSDKListener? listener,
  String? initPath,
  String? logPath,
  required int uiPlatform,
  bool? showImLog,
  Map<String, dynamic>? networkInfo,
}) async {
  if (_isInitSDK) {
    print('sdk has already been initialized');
    return true;
  }

  await CommonUtils.init(getSDKAppID: getSDKAppID, getLoginUser: getLoginUser);
  _sdkAppID = sdkAppID;
  _initInternalSDKListener();
  _initSimpleMessageListener();
  TIMMessageManager.instance.init();
  TIMConversationManager.instance.init();
  TIMGroupManager.instance.init();
  TIMCommunityManager.instance.init();
  TIMFriendshipManager.instance.init();
  TIMSignalingManager.instance.init();

  NativeLibraryManager.registerPort();

  addSDKListener(listener);

  setUIPlatform(uiPlatform: uiPlatform);

  setConfig(
    logLevel: logLevel,
    showImLog: showImLog,
  );

  if ((Platform.isAndroid || Platform.operatingSystem == "ohos") && networkInfo != null) {
    setNetworkInfo(networkInfo: networkInfo);
  }

  // APIType::FlutterFFI: 0x1 << 6;
  Pointer<Char> jsonSdkConfig = Tools.string2PointerChar(json.encode({
    "sdk_config_config_file_path": initPath ?? _getDefaultInitPath(),
    "sdk_config_log_file_path": logPath ?? _getDefaultLogPath(),
    "sdk_config_api_type": 64,
  }));
  int initResult = NativeLibraryManager.bindings.DartInitSDK(sdkAppID, jsonSdkConfig);

  _isInitSDK = initResult == TIMResult.TIM_SUCC.value;

  if (_isInitSDK) {
    _sdkAppID = null;
  }

  return _isInitSDK;
}