一旦当前页面开始重定向您,我需要关闭flutter_webview_plugin中包含的WebViewScaffold。
我当前的方法是让插件提供一个监听器onUrlChanged,并在URL更改后立即将其关闭。
@override
void initState() {
super.initState();
webview.onUrlChanged.listen((str) {
if (str.contains('google.com')) {
Navigator.pop(_webViewContext);
}
});
}
BuildContext _webViewContext;
final webview = FlutterWebviewPlugin();
@override
Widget build(BuildContext context) {
return Builder(
builder: (BuildContext context) {
_webViewContext = context;
return WebviewScaffold(
allowFileURLs: true,
withJavascript: true,
withLocalStorage: true,
withLocalUrl: true,
appBar: AppBar(title: Text('Payment')),
url: 'www.example.com',
);
}
}
);
}
但是,这会延迟一些时间,例如在实际调用侦听器并关闭WebView之前,要显示新网站(例如1或2秒)。