WebView后退按钮

时间:2014-11-19 14:58:34

标签: android webview

当按下后退按钮时,我的WebView正在加载上一页,而不会覆盖 onBackPressed()方法。我想知道如何防止这种行为,因为App的设计并不需要它。后退按钮应该只做它一直做的事情,导航片段/活动,而不是WebView本身。

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);

问候。

2 个答案:

答案 0 :(得分:0)

好的,够简单......

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;
    }
});

答案 1 :(得分:0)

以下是在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);
}