Flutter加载WebView

在 pubspec.yaml 中导入 flutter_webview_plugin 插件
使用时 import

import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
class WebView extends StatefulWidget {
  final url;
  final title;

  WebView({Key key, @required this.url, @required this.title})
      : super(key: key);

  @override
  _WebViewState createState() => _WebViewState();
}

class _WebViewState extends State<WebView> {
  FlutterWebviewPlugin flutterWebviewPlugin = FlutterWebviewPlugin();

  void initState() {
    super.initState();
    flutterWebviewPlugin.onStateChanged.listen((WebViewStateChanged state) {
      switch (state.type) {
        case WebViewState.shouldStart:
          //准备加载
          break;
        case WebViewState.startLoad:
          //开始加载
          break;
        case WebViewState.finishLoad:
          //加载完成
          break;
        case WebViewState.abortLoad:
          break;
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return WebviewScaffold(
      url: widget.url,
      appBar: Text(
        widget.title,
      ),
      withZoom: true, //允许网页缩放
      withLocalStorage: true,
      withJavascript: true, //允许执行 js 代码
    );
  }

  @override 
  void dispose() {
    flutterWebviewPlugin.dispose();
    super.dispose();
  }
}

ps:支持http需要在iOS的info.plist文件加入以下字段:

<key>io.flutter.embedded_views_preview</key>
    <true/>
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
image.png
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 最近Flutter一直比较火,我也它也是非常感兴趣,看了下官网的基础教程后我决定直接上手做一个App,一是这...
    徐老茂阅读 13,162评论 1 44
  • 你说你爱冬雪 向往在白色的世界里飞翔 哪怕他的冰冷将刺伤你的翅膀 乌云遮住阳光 小雨点儿也落在了世上 想坠入溪谷陪...
    趋零沙石阅读 2,578评论 0 3
  • 彼此的承诺 抑或是心中的梦想 心中有一颗北漂的梦 就这样 扬起远帆 一路向北 但谁知道 一路上事与愿违 一股股北来...
    keeppassion阅读 1,157评论 0 0
  • 夜啼碧袖痕还重,香麝已随尘马动。结欢桃洞永同心,月下红楼和泪送。 玉弦双响槽间凤,旧事何曾来入梦。相思徒苦那堪言,...
    江左芜生阅读 1,651评论 0 6