import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:webview_flutter/webview_flutter.dart'; import 'package:wow_english/common/widgets/we_app_bar.dart'; class WowWebViewPage extends StatefulWidget { const WowWebViewPage({super.key, required this.urlStr, required this.webViewTitle}); final String urlStr; final String webViewTitle; @override State createState() { return _WowWebViewPageState(); } } class _WowWebViewPageState extends State { late WebViewController _controller; @override void initState() { super.initState(); /*if (Platform.isIOS) { LimitingDirectionCsx.setScreenDirection(DeviceDirectionMask.PortraitUpsideDown); } else { SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); }*/ _controller =WebViewController() ..setJavaScriptMode(JavaScriptMode.unrestricted) ..setBackgroundColor(const Color(0x00000000)) ..setNavigationDelegate( NavigationDelegate( onProgress: (int progress) { // Update loading bar. }, onPageStarted: (String url) { EasyLoading.show(); }, onPageFinished: (String url) { EasyLoading.dismiss(); }, onWebResourceError: (WebResourceError error) { EasyLoading.showError(error.description); }, onNavigationRequest: (NavigationRequest request) { return NavigationDecision.navigate; }, ), ) ..loadRequest(Uri.parse(widget.urlStr)); } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.white, appBar: WEAppBar( titleText: widget.webViewTitle, ), body: Container( color: Colors.white, child: SafeArea( child: WebViewWidget(controller: _controller,), ) ), ); } }