Android Webviewリダイレクト問題解決方法
プロジェクトにはwebviewのリダイレクトが必要ですが、一つのwebveiwには多くのロード操作がありますので、webviewを呼び出しています。goback()メソッドの場合、必要な操作効果に達しない場合があります。
1.解決方法
WebBackForwardList webBackForwardList=webview.co.pyBackForwardList()はwebviewのロードスタックを取得し、さらにロードスタックを備えて論理操作を行う。
2.webBackForwardListでよく使われる方法
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をジャンプします。以下はコードです。
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;
}
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。