Android Webviewリダイレクト問題解決方法


プロジェクトにはwebviewのリダイレクトが必要ですが、一つのwebveiwには多くのロード操作がありますので、webviewを呼び出しています。goback()メソッドの場合、必要な操作効果に達しない場合があります。
1.解決方法
WebBackForwardList webBackForwardList=webview.co.pyBackForwardList()はwebviewのロードスタックを取得し、さらにロードスタックを備えて論理操作を行う。
2.webBackForwardListでよく使われる方法

int size = webBackForwardList.getSize()
webBackForwardList.getCurrentItem()
webBackForwardList.getCurrentIndex()
webBackForwardList.getItemAtIndex(index)
getssize()方法は、現在のローディングスタックの長さを取得する。
get CurrrentItem()は現在webviewにロードされているインターフェースを取得し、この方法でurl、titleなどのコンテンツを得ることができます。
get CurrenntIndex()は、現在ローディングスタックにロードされている位置を取得する。
webBackForwardList.getItemAtIndex(index)は、ロードスタック中の第indexページを取得する。
3.合理的に使う
2では、ページを読み込むためのいくつかの情報を取得し、現在のurl、タイトル、位置に応じて実行できます。に対応した処理を行います。
4.Demo使用
今はactivityを開いて、webviewでAインターフェースをロードして、ユーザーはAの中でBをクリックして、Cをクリックして、Dをクリックします。戻って操作する時はDからBにジャンプして、Aをジャンプします。以下はコードです。

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (webView.canGoBack()) {
      WebBackForwardList webBackForwardList = webView.copyBackForwardList();
      if (webBackForwardList.getCurrentIndex() == 4) {//    D  
        webView.loadUrl(webBackForwardList.getItemAtIndex(1).getUrl());//   B  
        return true;
      }
      webView.goBack();
    }    
    return true;
  }
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。