4

我的应用程序将网站的 url 加载到 android webview 中。该网站由 3 个页面组成(实际上是同一页面,但 ID 不同)我们称它们为 AB 和 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);

有任何想法吗?

谢谢!

4

1 回答 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;
        }

是工作还是不工作?

于 2012-10-29T03:02:51.560 回答