initSdk method

  1. @override
Future<String?> initSdk(
  1. CXExporterOptions options
)
override

Implementation

@override
Future<String?> initSdk(CXExporterOptions options) async {
  var arguments = options.toMap();
  // Remove beforeSend from arguments as it cannot be serialized
  arguments.remove('beforeSend');

  if (arguments['instrumentations'] is Map &&
      arguments['instrumentations'][CXInstrumentationType.mobileVitals.value] == true) {
    try {
      _warmStartTracker = WarmStartTracker();
      _warmStartTracker?.init(methodChannel);
    } catch (e) {
      debugPrint('Failed to initialize WarmStartTracker: $e');
      _warmStartTracker = null;
    }
  }

  final version =
      await methodChannel.invokeMethod<String>('initSdk', arguments);

  // If Dart-side beforeSend callback is provided, register it
  _beforeSendCallback = options.beforeSend;
  _startListening();

  return version;
}