在颤动的WebView中后退按钮不起作用 [英] Back Button not working inside Webview in flutter

查看:14
本文介绍了在颤动的WebView中后退按钮不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我编写的代码是通过包装willopScope来编写的,这样我就可以获取Webview的上一页,但它不起作用,因此它将关闭整个WebView页。

以下是完整的代码:



class Resources extends StatefulWidget {
  @override
  _ResourcesState createState() => _ResourcesState();
}

class _ResourcesState extends State<Resources> {

  late WebViewController _controller;

  final Completer<WebViewController> _controllerCompleter =
  Completer<WebViewController>();

  Future<bool> pop(BuildContext context) async {
    if (await _controller.canGoBack()) {
      _controller.goBack();
      return Future.value(false);
    } else {
      return Future.value(true);
    }
  }
  @override
  void initState() {
    super.initState();
    if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SafeArea(
            child: WillPopScope(
              onWillPop:()=> pop(context),
              child: Scaffold(
                appBar: AppBar(),
                body: WebView(
                  gestureNavigationEnabled: true,
                  initialUrl: 'https://www.edhitch.com/login.html',
                  javascriptMode: JavascriptMode.unrestricted,
                  onWebViewCreated: (WebViewController webViewController) {
                    _controllerCompleter.future.then((value) => _controller = value);
                    _controllerCompleter.complete(webViewController);

                    },
                ),

              ),
          ),
            ),
        );
  }
}

我已经使用了Will Scope,它接受bool函数POP,请帮助我解决它。

推荐答案

尝试以下代码,希望对您有帮助:

使用异步创建Future函数,它将返回True

Future<bool> onWillPopFunction() async {
    return true;
}

并在onWillPop事件上调用onWillPopFunction,函数

WillPopScope(
    child:  Scaffold(), 
    onWillPop: onWillPopFunction,
)

您还添加了警告提示框,如(是否退出应用程序?)

或尝试以下代码

 IconButton(
      icon: Icon(Icons.arrow_back),
      onPressed: () => Navigator.pop(context, false),
    ),

这篇关于在颤动的WebView中后退按钮不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆