import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_webview_pro/webview_flutter.dart'; class WebViewWidget extends StatefulWidget { final String _initialUrl; const WebViewWidget(this._initialUrl, {Key? key}) : super(key: key); @override WebViewWidgetState createState() => WebViewWidgetState(); } class WebViewWidgetState extends State { WebViewWidgetState(); @override void initState() { super.initState(); // Enable hybrid composition. if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView(); } @override Widget build(BuildContext context) { return WebView( initialUrl: widget._initialUrl, javascriptMode: JavascriptMode.unrestricted, javascriptChannels: { _toasterJavascriptChannel(context), }, gestureNavigationEnabled: true, ); } JavascriptChannel _toasterJavascriptChannel(BuildContext context) { return JavascriptChannel( name: 'Toaster', onMessageReceived: (JavascriptMessage message) { // ignore: deprecated_member_use Scaffold.of(context).showSnackBar( SnackBar(content: Text(message.message)), ); }); } }