android webview历史记录无法正常工作

时间:2012-05-14 07:44:50

标签: android webview

我的应用程序将网站的网址加载到android webview中。 这个网站由3个页面组成(实际上它是同一个页面,具有不同的ID) 我们称之为A B& C。 该网站有一个后退按钮,代码为:

javascript:history.go(-1)

如果我从A浏览到B并按下后退按钮 - 它可以正常工作。

如果我从B浏览到C并按下后退按钮 - 我会回到B - 也没关系。

如果我按下后退按钮,我会回到C而不是到A - 不是很好 然后,如果我按回去,我会回到B ...再回到C ...然后回到B ...无休止地,我从未到过A。

如果我使用设备的物理背面并使用以下内容,它将按预期工作:

if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
        webView.goBack();
        return true;
    } 

额外信息: 我正在使用WebViewClient,覆盖“shouldOverrideUrlLoading”并启用javascript:

webView.getSettings().setJavaScriptEnabled(true);

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我写这样的代码

public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (url.startsWith("tel:") || url.startsWith("mailto:")) {
                return true;
            }
            if (mOnWebViewEventListener != null) {
                mOnWebViewEventListener.onWebViewPageStart(view);
            }

            if (mShowProgress) {
                mProgressBar.show();
            }
            return false;
        }

它的工作与否?