2012-05-14 10 views
4

私のアプリケーションは、ウェブサイトのURLをアンドロイドウェブビューに読み込みます。 このウェブサイトは は、AB & C. ウェブサイトにそれらを呼び出すことができますコードはバックボタンを、持っている3ページ(異なるIDと実際に同じページ)で構成されていますアンドロイドウェブビューの履歴が正しく動作しない

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

追加情報:私は、オーバーライド "shouldOverrideUrlLoading" をWebViewClientを使用し、JavaScriptを有効い :

webView.getSettings().setJavaScriptEnabled(true); 

任意のアイデア?

ありがとうございます!

+0

ここに同じ問題があります。 – hogni89

+1

@ hogni89 - この問題は解決しました。問題の原因は "shouldOverrideUrlLoading"でした。特定のURLを処理する必要がありました。問題は私が「真実」を返すことだった。内部ブラウ​​ザが履歴を処理するようにするには、 "shouldOverrideUrlLoading"内で実行する必要があるものにもかかわらず、falseを返す必要があります。 お手伝いをしてください。 –

+0

Thaks。助けて! ;) – hogni89

答えて

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

のようなコードを書くのか?

関連する問題