Мне нужно закрыть свой WebViewScaffold, включенный в flutter_webview_plugin, как только текущая страница начнет перенаправлять вас.
Мой текущий Aproach - иметь Listener 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',
);
}
}
);
}
Но это создает некоторую задержку в работеНовый сайт отображается за 1 или 2 секунды до того, как он на самом деле вызывает Слушатель и закрывает WebView.