authenticateIntent method

Future authenticateIntent(
  1. IntentAction action,
  2. IntentProvider callback
)

Implementation

Future<dynamic> authenticateIntent(
    IntentAction action, IntentProvider callback) async {
  final url = action.redirectToUrl!.url!;
  final returnUrl = Uri.parse(action.redirectToUrl!.returnUrl!);
  final completer = Completer<dynamic>();
  late StreamSubscription sub;
  sub = uriLinkStream.listen((Uri? uri) async {
    if (uri!.scheme == returnUrl.scheme &&
        uri.host == returnUrl.host &&
        uri.queryParameters['requestId'] ==
            returnUrl.queryParameters['requestId']) {
      await sub.cancel();
      final intent = await callback(uri);
      completer.complete(intent);
    }
  });

  await launch(url, forceSafariVC: false);
  return completer.future;
}