Flutter_Webview_Plugin插件使用及异常处理

GitHub项目地址,欢迎star:

https://github.com/aiyangtianci/flutter_app

                                                              

目录

介绍

插件地址

使用方式

 异常


介绍

官网定义:Plugin that allows Flutter to communicate with a native WebView.

Flutter 本身并未集成webview,所以当需要使用本地webview 的时候,也就是使用的原生webview组件,需要借助flutter_webview_plugin插件。

注意:Webview没有集成到Fullter的widget部件树中,它是一个位于flutter视图之上的原生视图,因此无法看到snackbar、对话框或其他与webview占用的屏幕区域重叠的小部件。

插件地址

https://pub.flutter-io.cn/packages/flutter_webview_plugin#-installing-tab- 

使用方式

https://pub.flutter-io.cn/packages/flutter_webview_plugin#-readme-tab-

return new MaterialApp(
  title: 'Flutter WebView Demo',
  theme: new ThemeData(
    primarySwatch: Colors.blue,
  ),
  routes: {
    '/': (_) => const MyHomePage(title: 'Flutter WebView Demo'),
    '/widget': (_) => new WebviewScaffold(
      url: selectedUrl,
      appBar: new AppBar(
        title: const Text('Widget webview'),
      ),
      withZoom: true,
      withLocalStorage: true,
      hidden: true,
      initialChild: Container(
        color: Colors.redAccent,
        child: const Center(
          child: Text('Waiting.....'),
        ),
      ),
    ),
  },
);

 异常

(参考地址:https://www.cnblogs.com/sangwl/p/11271591.html

Execution failed for task ':flutter_webview_plugin:extractDebugAnnotations'.
> Could not resolve all files for configuration ':flutter_webview_plugin:lintClassPath'.

...

flutter_webview_plugin 在使用过程中会iOS出现无法加载HTTP请求的情况, 但是Flutter 却可以加载HTTP请求。这就与两个的框架有关了,Flutter是独立于UIKit框架的。解决方案就是在iOS 的info.plist中添加对HTTP的信任。

IOS

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

安卓

 9.0之前的系统,使用过程中并未发生异常。 9.0之后,也不支持HTTP,同样也得添加信任。

第一步:在清单文件AndroidManifest.xml的application标签里面设置networkSecurityConfig属性如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config">
         <!-- ... -->
    </application>
</manifest>

第二步:在资源文件夹res/xml下面创建network_security_config.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>
发布了153 篇原创文章 · 获赞 755 · 访问量 100万+

猜你喜欢

转载自blog.csdn.net/csdn_aiyang/article/details/102835545