initSdk static method

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

User interaction logic for hybrid (Flutter):

  • userInteraction: true → Dart detects click/scroll/swipe; native is always passed false to avoid duplicate events.
  • userInteraction: false → No detection on Dart; native is still passed false.

Implementation

static Future<String?> initSdk(CXExporterOptions options) async {
  // Save options globally for later use
  _globalOptions = options;

  // Initialize platform SDK first (iOS/Android always receive userActions: false)
  final result = await CxFlutterPluginPlatform.instance.initSdk(options);

  // Only run Dart-side interaction tracking when user opted in.
  // result is non-null on successful platform init; null when platform init failed (exception propagates or platform returned null).
  if (result != null) {
    final userActionsEnabled =
        options.instrumentations?[CXInstrumentationType.userActions.value] ==
            true;
    if (userActionsEnabled) {
      CxInteractionTracker.initialize(debug: options.debug);
    }
  }

  return result;
}