首页 > 解决方案 > 关闭 WebviewScaffold 或调整 flutterWebviewPlugin 大小以适合父小部件

问题描述

我正在使用 flutter_webview_plugin: ^0.3.8 在我的颤振应用程序中打开一个 webview。当我单击一个按钮时,会打开一个 web 视图。我可以通过两种方式做到这一点。 FlutterWebviewPlugin flutterWebviewPlugin = FlutterWebviewPlugin();

1)flutterWebviewPlugin.launch('https://google.com',withJavascript: true); 问题是它在网络视图中打开谷歌,但它占据了整个可用屏幕。它不尊重父小部件中定义的安全区域或其他任何内容,并且不确定如何在应用栏中添加后退按钮。我可以用 flutterWebviewPlugin.close() 关闭它

2)Navigator.push<dynamic>( context, MaterialPageRoute<dynamic>( builder: (BuildContext context) => WebviewScaffold( url: 'https://google.com', withJavascript: true, appBar: AppBar( title: Text("Widget webview"), ),),),);

这尊重安全区域,我也可以有一个带有后退按钮的应用栏,但我无法关闭它。flutterWebviewPlugin.close() 似乎不起作用。

我还有一个 dispose 方法:

flutterWebviewPlugin.dispose();
super.dispose();
}

我需要一种方法来根据父小部件关闭 WebviewScaffold 或调整 flutterWebviewPlugin 的大小。我怎么做?

标签: flutterwebviewflutterwebviewpluginwebviewscaffold

解决方案


使用颤振解决 web 视图中的状态栏重叠问题

 @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      debugShowCheckedModeBanner: false,
        home: Container(
          margin: const EdgeInsets.only(top: 0.0),
          child: SafeArea(
          top: true,
          child: new WebviewScaffold(
            url: gisUrl,
            withZoom: true,
            withLocalStorage: true,
            hidden: true,
            initialChild: Container(
              color: Colors.white,
              child: const Center(
              child: Text('Loading.....'),
            ),
        ),
      ),
    ),
  ),
);

推荐阅读