4

私のアプリケーションは、Web サイトの URL を Android WebView に読み込みます。この Web サイトは 3 つのページ (実際には ID が異なる同じページ) で構成されており、AB & C と呼びましょう。Web サイトには戻るボタンがあり、そのコードは次のとおりです。

javascript:history.go(-1)

A から B に移動して戻るボタンを押すと、問題なく動作します。

B から C に移動して戻るボタンを押すと、B に戻りますが、問題ありません。

その後、戻るボタンを押すと、A ではなく C に戻ります。問題ありません。
それから私が戻って押すと、私は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 に答える