首页 文章

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

提问于
浏览
4

我的应用程序将网站的URL加载到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

    我写这样的代码

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

    它的工作与否?

相关问题