import 'package:flutter/material.dart'; import 'package:url_launcher/url_launcher.dart'; import 'package:webview_flutter/webview_flutter.dart'; class AuthorizationScreen extends StatelessWidget { final Uri authorizationUrl; const AuthorizationScreen(this.authorizationUrl, {super.key}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('Connect with Goatpass'), ), body: Stack(children: [ WebViewWidget( controller: WebViewController() ..setJavaScriptMode(JavaScriptMode.unrestricted) ..setBackgroundColor(Colors.white) ..setNavigationDelegate(NavigationDelegate( onNavigationRequest: (NavigationRequest request) { if (request.url.startsWith('goatagent://auth')) { Navigator.of(context).pop(request.url); return NavigationDecision.prevent; } else if (request.url.startsWith("https://id.smartsheep.studio/auth/register")) { launchUrl(Uri.parse(request.url)); return NavigationDecision.prevent; } return NavigationDecision.navigate; }, )) ..loadRequest(authorizationUrl) ..clearCache(), ), ]), ); } }