使用flutter_webview_plugin插件,有些时候我们需要拦截webview中的链接访问,比如:统计或阻止用户访问外部链接。

接下来我们看下如何拦截链接的访问,示例代码如下:

StreamSubscription<WebViewStateChanged> _onStateChanged;

@override
void initState() {
  super.initState();
  //监听webview状态改变
  _onStateChanged = plugin.onStateChanged.listen((s) {
    if (s.type == WebViewState.shouldStart) {//拦截即将展现的页面
      if (s.url.startsWith("http://")) {
        plugin.stopLoading();//停止加载
        print('禁止非https链接访问');
        return;
      }
    }
  });
}