履歴URLを手動で保存せずに履歴URLまたは最後にロードされたURLを記録します。それは可能ですか?AndroidでwebView.goBack()を実行せずにwebviewの最後に読み込まれたURLを取得します。
答えて
を...
WebBackForwardList mWebBackForwardList = mWebView.copyBackForwardList();
String historyUrl = mWebBackForwardList.getItemAtIndex(mWebBackForwardList.getCurrentIndex()-1).getUrl();
訪問したURLのスタック(リスト)は、onPageFinished()で追加してユーザーのバックアップ時に削除することで維持できます。
private List<String> urls = new ArrayList<String>();
@Override
public final void onPageFinished(final WebView view,final String url) {
urls.add(0, url);
super.onPageFinished(view, url);
}
、その後トラップ活動のバックキーすなわち
:
ドキュメントで答えを見つけ@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (urls.size() == 1) {
finish();
return true;
} else if (urls.size() > 1) {
urls.remove(0);
// load up the previous url
loadUrl(urls.get(0));
return true;
} else
return false;
default:
return super.onKeyDown(keyCode, event);
}
}
onPageFinishedが複数呼び出される傾向があります特に、再描画(例えば、カーソルの点滅)またはiframeがある場合は、1ページあたりの時間。 shouldOverrideUrlLoadingは、新しいURLに対してのみ呼び出されますが、iframeに対して呼び出されることはありません。ですから、最善の方法は、http://stackoverflow.com/questions/3149216/how-to-listen-for-a-webview-finishing-loading-a-url-inで説明されているように、onPageFinishedとshouldOverrideUrlLoadingの組み合わせを使用することです-android – Torid
はい、本当です。 URLがすでにリスト(第0位)にあるかどうかを確認し、その場合は追加しないでください。 – tarrant
私は自分自身を明確にしていないと思う、私は**手動でURLを保存する必要はありません**。 webviewは履歴スタックを維持していますか?私はちょうど最後に読み込まれたURLを取得したい。 –
- 1. ホワイトページの取得Android WebviewアプリケーションでWebviewが読み込まれる前に
- 2. OSX - WebViewに読み込まれた画像を取得する
- 3. 特定のURLはwebviewに読み込まれません
- 4. 最後に読み込まれたURLを参照
- 5. Androidでアクティビティが読み込まれた後でコードを実行します。
- 6. ページが読み込まれた後にJavascriptInterfaceでメソッドを実行
- 7. URLをページに読み込み、javascriptを実行します。
- 8. Android WebviewのURLが読み込まれない
- 9. 最初に読み込みアクティビティを実行すると画像が1つずつ読み込まれる
- 10. webview AndroidでHTMLなしでjavascriptを読み込めません
- 11. ピカソで読み込まれた画像からURLを取得
- 12. AndroidでWebViewのURLを読み込まないようにする(リアクションネイティブ)
- 13. WebViewでURL形式のポップオーバーを読み込めません。
- 14. WebViewでURLを読み込むことができません
- 15. 外部URLをWebViewに読み込む
- 16. Android webviewアプリが読み込まれないgoogleのアプリエンジンで実行されているwordpressサイトのhttps URL
- 17. WebViewでURLを読み込めません
- 18. React - 最後に訪問したページデータを読み込みます
- 19. Android WebView "未定義のgetAttribute 'プロパティを読み取れません"
- 20. Android WebView - URL読み込みを傍受する
- 21. WebViewでURLを読み込む前に画像を読み込むことができません
- 22. PHPはスクリプトを実行した後にログコンテンツを読み込みます
- 23. webviewが読み込まれるまでスプラッシュ画面を読み込むには
- 24. Android WebViewでローカルHTMLファイルを読み込めません。
- 25. 実行時に最大ヒープスペースを読み込みます
- 26. Webviewでページを読み込めませんでした
- 27. Xamarin Android - 2番目のwebviewでURLを読み込む
- 28. webViewからgoBackの後にPDFが読み込まれない
- 29. angularJSウェブサイトのAndroid webviewリダイレクトURLを取得できません
- 30. Android - webview内のPDFを読み込み
これは動作しますが、間違いがあります。あなたがPageAにいる場合は、PageBに行きます。戻るボタンを押すと、正しくpageAに戻ります。しかし、もう一度[戻る]ボタンを押すと、pageBは前のページだったので、PageBに再度移動します。したがって、2つのページの間が永遠にループします。 –
いずれにしても、ページに移動するために履歴を使用していないため、私の場合は問題にはなりません。私は伐採の目的でそれを必要としました。 backForwardListを使用してナビゲートしていますか?もしそうなら、なぜですか? Androidのブラウザは、デフォルトでそれを世話するだろう、それはwouldnt? –
私は非常に単純なブラウザを実装しなければなりませんでした。私は代わりにこれを使いました: 'if(browser.canGoBack()){browser.goBack()} else {finish()}'これは私のためにうまくいきました。 –