diff --git a/lib/src/webview_scaffold.dart b/lib/src/webview_scaffold.dart index 8df7b05f..61778c14 100644 --- a/lib/src/webview_scaffold.dart +++ b/lib/src/webview_scaffold.dart @@ -63,11 +63,19 @@ class _WebviewScaffoldState extends State { Timer _resizeTimer; StreamSubscription _onStateChanged; + var _onDestroy; + @override void initState() { super.initState(); webviewReference.close(); + _onDestroy = webviewReference.onDestroy.listen((_) { + if (mounted) { + Navigator.of(context).pop(); + } + }); + if (widget.hidden) { _onStateChanged = webviewReference.onStateChanged.listen((WebViewStateChanged state) { if (state.type == WebViewState.finishLoad) { @@ -80,6 +88,7 @@ class _WebviewScaffoldState extends State { @override void dispose() { super.dispose(); + _onDestroy?.cancel(); _resizeTimer?.cancel(); webviewReference.close(); if (widget.hidden) {