uikitTrace method

Future<void> uikitTrace({
  1. required String trace,
  2. int? logLevel,
  3. String? fileName,
  4. String? funcName,
  5. int? lineNum,
})

Implementation

Future<void> uikitTrace({
  required String trace,
  int? logLevel,
  String? fileName,
  String? funcName,
  int? lineNum,
}) async {
  String userData = Tools.generateUserData('uikitTrace');
  Completer<void> completer = Completer();
  void handleApiCallback(Map jsonResult) {
    completer.complete();
  }
  NativeLibraryManager.timApiValueCallback2Future(userData, handleApiCallback);

  Map<String, dynamic> cJsonParam = {};
  cJsonParam['request_internal_operation'] = 'internal_operation_write_log';
  cJsonParam['request_write_log_log_level_param'] = logLevel ?? LogLevel.V2TIM_LOG_WARN;
  cJsonParam['request_write_log_file_name_param'] = fileName ?? 'IMFlutterUIKit';
  cJsonParam['request_write_log_log_content_param'] = trace;
  cJsonParam['request_write_log_func_name_param'] = funcName;
  cJsonParam['request_write_log_line_number_param'] = lineNum;
  Pointer<Char> pCJsonParam = Tools.string2PointerChar(json.encode(cJsonParam));
  Pointer<Void> pUserData = Tools.string2PointerVoid(userData);

  NativeLibraryManager.bindings.DartCallExperimentalAPI(pCJsonParam, pUserData);

  return Future.value();
}