import 'package:flutter/material.dart'; import 'package:webview_flutter/webview_flutter.dart'; class WebViewScreen extends StatefulWidget { String label; String link; WebViewScreen({super.key, required this.label, required this.link}); @override State createState() => _WebViewScreenState(); } class _WebViewScreenState extends State { bool isLoading = true; late WebViewController controller; @override void initState() { super.initState(); controller = WebViewController() ..setJavaScriptMode(JavaScriptMode.unrestricted) ..setBackgroundColor(const Color(0x00000000)) ..setNavigationDelegate( NavigationDelegate( onProgress: (int progress) {}, onPageStarted: (String url) { setState(() { isLoading = true; }); }, onPageFinished: (String url) { setState(() { isLoading = false; }); }, onWebResourceError: (WebResourceError error) {}, onNavigationRequest: (NavigationRequest request) { if (request.url.startsWith('https://www.google.com/')) { return NavigationDecision.prevent; } return NavigationDecision.navigate; }, ), ) ..loadRequest(Uri.parse(widget.link)); } @override void dispose() { super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.label), ), body: Stack( children: [ if (isLoading) const Center(child: CircularProgressIndicator()) else const SizedBox(), WebViewWidget(controller: controller), ], ), ); } }