flutter_webview_plugin返回键的问题

如果webview中的页面还可以返回,那么,flutter层是接收不到返回事件的,这是因为webview对事件进行了拦截。

虽然大多数情况这么做是正确的,但是我们有时候需要将事件传递到flutter层。

方法是,将插件android包中的webviewmanager里面的 

 webView.setOnKeyListener(new View.OnKeyListener() {

            @Override

            public boolean onKey(View v, int keyCode, KeyEvent event) {

                if (event.getAction() == KeyEvent.ACTION_DOWN) {

                    switch (keyCode) {

                        case KeyEvent.KEYCODE_BACK:

                            FlutterWebviewPlugin.channel.invokeMethod("onBack", null);

//                            if (webView.canGoBack()) {

//                                webView.goBack();

//                            } else {

//                                FlutterWebviewPlugin.channel.invokeMethod("onBack", null);

//                            }

                            return true;

                    }

                }



                return false;

            }

        });

上面注释掉的部分就是要变动的地方

发布了310 篇原创文章 · 获赞 69 · 访问量 46万+

猜你喜欢

转载自blog.csdn.net/nimeghbia/article/details/104307707