import 'dart:async'; import 'package:hmg_patient_app/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/material.dart'; import 'package:webview_flutter/webview_flutter.dart'; class MyWebView extends StatefulWidget { final String title; final String selectedUrl; MyWebView({ required this.title, required this.selectedUrl, }); @override State createState() => _MyWebViewState(); } class _MyWebViewState extends State { // final Completer _controller = Completer(); late final WebViewController _controller; @override void initState() { super.initState(); _controller = WebViewController() ..setJavaScriptMode(JavaScriptMode.unrestricted) ..setNavigationDelegate( NavigationDelegate( onProgress: (int progress) { // Update loading bar. }, onPageStarted: (String url) {}, onPageFinished: (String url) {}, onHttpError: (HttpResponseError error) {}, onWebResourceError: (WebResourceError error) {}, onNavigationRequest: (NavigationRequest request) { if (request.url.startsWith('https://www.youtube.com/')) { return NavigationDecision.prevent; } return NavigationDecision.navigate; }, ), ) ..loadRequest(Uri.parse(widget.selectedUrl)); } @override Widget build(BuildContext context) { return AppScaffold(isShowAppBar: true, appBarTitle: widget.title, isShowDecPage: false, showNewAppBar: true, showNewAppBarTitle: true, body: WebViewWidget(controller: _controller) // WebView( // initialUrl: widget.selectedUrl, // javascriptMode: JavascriptMode.unrestricted, // onWebViewCreated: (WebViewController webViewController) { // _controller.complete(webViewController); // }, ); } }