Flutter使用webview时,点击返回键webview进行回退。

1,200 阅读1分钟
WebView(
  initialUrl: 'https://www.baidu.com/',
  javascriptMode: JavascriptMode.unrestricted,
  onWebViewCreated: (WebViewController webViewController) {
    _webViewController = webViewController;
    // _loadLocalHtml();
  },
  onProgress: (int progress) {
    LoggerUtil.logger.e(progress);
    if (progress == 100) {
      webViewModel.hideLoading();
    }
  },
),

创建webViewController.

WillPopScope(
  onWillPop: () async {
    var isFinish = await _webViewController.canGoBack().then((value){
      if(value){
        _webViewController.goBack();
      }
      return !value;
    });
    return isFinish;
  }

使用willPopScope监听返回事件。在onWillPop中调用_webViewController.canGoBack()拿到webview中是否还有页面可返回的值进行判断。