Open SudeshBitblue opened 1 year ago
getting this kind of error from today's morning (12-10-2022) while using the Webview for windows. My code is here
import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'dart:async'; import 'package:webview_windows/webview_windows.dart'; final navigatorKey = GlobalKey<NavigatorState>(); class DesktopWeb extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp(navigatorKey: navigatorKey, home: WebViewPage()); } } class WebViewPage extends StatefulWidget { const WebViewPage({Key? key}) : super(key: key); @override State<WebViewPage> createState() => _WebViewPageState(); } class _WebViewPageState extends State<WebViewPage> { final _controller = WebviewController(); final _textController = TextEditingController(); bool _isWebviewSuspended = false; @override void initState() { super.initState(); initPlatformState(); } Future<void> initPlatformState() async { // Optionally initialize the webview environment using // a custom user data directory // and/or a custom browser executable directory // and/or custom chromium command line flags //await WebviewController.initializeEnvironment( // additionalArguments: '--show-fps-counter'); try { await _controller.initialize(); _controller.url.listen((url) { _textController.text = url; }); await _controller.setBackgroundColor(Colors.transparent); await _controller.setPopupWindowPolicy(WebviewPopupWindowPolicy.deny); await _controller.loadUrl('https://flutter.dev'); if (!mounted) return; setState(() {}); } on PlatformException catch (e) { WidgetsBinding.instance.addPostFrameCallback((_) { showDialog( context: context, builder: (_) => AlertDialog( title: Text('Error'), content: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text('Code: ${e.code}'), Text('Message: ${e.message}'), ], ), actions: [ TextButton( child: Text('Continue'), onPressed: () { Navigator.of(context).pop(); }, ) ], )); }); } } Widget compositeView() { if (!_controller.value.isInitialized) { return const Text( 'Not Initialized', style: TextStyle( fontSize: 24.0, fontWeight: FontWeight.w900, ), ); } else { return Padding( padding: EdgeInsets.all(20), child: Column( children: [ Card( elevation: 0, child: Row(children: [ Expanded( child: TextField( decoration: InputDecoration( hintText: 'URL', contentPadding: EdgeInsets.all(10.0), ), textAlignVertical: TextAlignVertical.center, controller: _textController, onSubmitted: (val) { _controller.loadUrl(val); }, ), ), IconButton( icon: Icon(Icons.refresh), splashRadius: 20, onPressed: () { _controller.reload(); }, ), IconButton( icon: Icon(Icons.developer_mode), tooltip: 'Open DevTools', splashRadius: 20, onPressed: () { _controller.openDevTools(); }, ) ]), ), Expanded( child: Card( color: Colors.transparent, elevation: 0, clipBehavior: Clip.antiAliasWithSaveLayer, child: Stack( children: [ Webview( _controller, permissionRequested: _onPermissionRequested, ), StreamBuilder<LoadingState>( stream: _controller.loadingState, builder: (context, snapshot) { if (snapshot.hasData && snapshot.data == LoadingState.loading) { return LinearProgressIndicator(); } else { return SizedBox(); } }), ], ))), ], ), ); } } @override Widget build(BuildContext context) { return Scaffold( floatingActionButton: FloatingActionButton( tooltip: _isWebviewSuspended ? 'Resume webview' : 'Suspend webview', onPressed: () async { if (_isWebviewSuspended) { await _controller.resume(); } else { await _controller.suspend(); } setState(() { _isWebviewSuspended = !_isWebviewSuspended; }); }, child: Icon(_isWebviewSuspended ? Icons.play_arrow : Icons.pause), ), appBar: AppBar( title: StreamBuilder<String>( stream: _controller.title, builder: (context, snapshot) { return Text( snapshot.hasData ? snapshot.data! : 'WebView (Windows) Example'); }, )), body: Center( child: compositeView(), ), ); } Future<WebviewPermissionDecision> _onPermissionRequested( String url, WebviewPermissionKind kind, bool isUserInitiated) async { final decision = await showDialog<WebviewPermissionDecision>( context: navigatorKey.currentContext!, builder: (BuildContext context) => AlertDialog( title: const Text('WebView permission requested'), content: Text('WebView has requested permission \'$kind\''), actions: <Widget>[ TextButton( onPressed: () => Navigator.pop(context, WebviewPermissionDecision.deny), child: const Text('Deny'), ), TextButton( onPressed: () => Navigator.pop(context, WebviewPermissionDecision.allow), child: const Text('Allow'), ), ], ), ); return decision ?? WebviewPermissionDecision.none; } }
guys anyone know about this issue...? then please give your solution.
Thank you
its still not working for windows 11 latest version also.
My team has been experiencing this issue solely on windows RDP environments. Anyone have an update for a workaround/solution? @SudeshBitblue ?
getting this kind of error from today's morning (12-10-2022) while using the Webview for windows. My code is here
guys anyone know about this issue...? then please give your solution.
Thank you