Android WebView backbutton
按下backbutton时,我的WebView正在加载上一页,而我没有重写onBackPressed方法。我想知道如何防止这种行为,因为这不是应用程序设计所需要的。backbutton应该只做它通常做的事情,导航片段/活动,而不是WebView本身Android WebView backbutton,android,webview,Android,Webview,按下backbutton时,我的WebView正在加载上一页,而我没有重写onBackPressed方法。我想知道如何防止这种行为,因为这不是应用程序设计所需要的。backbutton应该只做它通常做的事情,导航片段/活动,而不是WebView本身 webView = (WebView) getView().findViewById(R.id.webView); webView.setWebViewClient(new InternalWebClient()); webView.getSetti
webView = (WebView) getView().findViewById(R.id.webView);
webView.setWebViewClient(new InternalWebClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
问候。好的,很简单
webView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
MyActivity.this.finish(); // or getActivity().finish() when in Fragment
}
return false;
}
});
下面是在Webview中启用“后退”按钮的最佳方法
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
webView.goBack();
return true;
}
else
{
finish();
}
return super.onKeyDown(keyCode, event);
}
什么是InternalWebClient?只需重写shouldOverrideUrlLoading、onPageFinished和onReceivedError方法,加载时显示进度微调器,加载失败时显示一些自定义html。不应该和我的问题有任何关系。我应该从这里显示的源代码中删除它吗?