configureDeepLinks static method

Future<void> configureDeepLinks({
  1. required void onSuccess(
    1. String reference
    ),
  2. required void onError(
    1. String code,
    2. String message
    ),
})

Implementation

static Future<void> configureDeepLinks({
  required void Function(String reference) onSuccess,
  required void Function(String code, String message) onError,
}) async {
  // Handle initial link (cold start)
  try {
    final String? initialLink = await _channel.invokeMethod<String>(
      'getInitialLink',
    );
    if (initialLink != null && isMoolreCallback(initialLink)) {
      await _processDeepLink(initialLink, onSuccess, onError);
    }
  } catch (e) {
    onError('DEEP_LINK_ERROR', 'Failed to get initial link: ${e.toString()}');
  }

  // Listen for new incoming links (hot/warm start)
  _channel.setMethodCallHandler((call) async {
    if (call.method == 'onLinkReceived') {
      final String? uriString = call.arguments;
      if (uriString != null && isMoolreCallback(uriString)) {
        await _processDeepLink(uriString, onSuccess, onError);
      }
    }
  });
}