具有Web视图功能的Android后退按钮无法正常工作

时间:2015-06-26 12:06:14

标签: android webview

您好我正在开发我正在使用一个Web视图的Android应用程序。我的Web视图有一些数据可以重定向到某个不同的链接。因此,当我点击它时,应该回到以前的内容。最后,它应该在登陆页面时关闭Web视图。我尝试了以下方式:

webView = new WebView(this);
    webView.setWebViewClient(new WebViewClient() {
        @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url.contains(URLManager.URL_DICOM_BACK_PRESSED_URL)) {

                processBackPressed();
                return true;
            } else {

                return super.shouldOverrideUrlLoading(view, url);
            }
        }

        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            if (failingUrl.contains(URLManager.URL_DICOM_BACK_PRESSED_URL)) {
                processBackPressed();
            } else {
                showError("Server unreachable");
            }
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
        }
    });
    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl(url);

@Override
public void onBackPressed() {

    if (webView != null && webView.canGoBack()) {          

        webView.goBack();
    } else {            

        processBackPressed();
    }
}

所以问题是,每当它回到上一页时,它首先显示当前页面然后是上一页。所以看起来像是先刷新页面然后加载前一个URL。我做错了什么。需要一些帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

试试这个 -

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(event.getAction() == KeyEvent.ACTION_DOWN){
        switch(keyCode)
        {
        case KeyEvent.KEYCODE_BACK:
            if(myWebView.canGoBack()){
                myWebView.goBack();
            }else{
                finish();
            }
            return true;
        }

    }
    return super.onKeyDown(keyCode, event);
}