如果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;
}
});
上面注释掉的部分就是要变动的地方