기록 URL을 수동으로 저장하지 않고 기록 URL 또는 마지막으로로드 한 URL을 기록하려고합니다. 그게 가능하니?Android에서 webView.goBack()을 수행하지 않고 webview의 마지막로드 된 URL 가져 오기
답변
워드 프로세서에서 답을 찾을 수 ...
WebBackForwardList mWebBackForwardList = mWebView.copyBackForwardList();
String historyUrl = mWebBackForwardList.getItemAtIndex(mWebBackForwardList.getCurrentIndex()-1).getUrl();
방문한 URL의 스택 (목록)은 onPageFinished()에 추가하고 사용자가 백업 할 때 제거하여 유지할 수 있습니다.
@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 경향이 호출되는 여러 :
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); }
후 활동에 다시 키 트랩
즉, 페이지 당 시간, 특히 다시 그리기 (예 : 커서 깜박임) 또는 iframe이있는 경우. shouldOverrideUrlLoading은 새로운 URL에 대해서만 호출되지만 iframe에는 호출되지 않습니다. 따라서 가장 좋은 방법은 http://stackoverflow.com/questions/3149216/how-to-listen-for-a-webview-finishing-loading-a-url-in에 설명 된대로 onPageFinished 및 shouldOverrideUrlLoading을 함께 사용하는 것입니다. -android – Torid
네, 맞습니다. URL이 이미 목록 (제로 위치)에 있는지 확인하고이 경우 URL을 추가하지 않아야합니다. – tarrant
나는 내 자신을 분명히하지 않았다고 생각한다. ** 나는 ** 수동으로 URL을 저장하고 싶지 않다. webview는 히스토리 스택을 유지합니다. 난 그냥 마지막으로로드 된 URL을 원한다. –
- 1. Safari에서 WebView의 URL을 가져 오기
- 2. 크롬 플러그인을 클릭하지 않고 URL 가져 오기
- 3. android에서 webview의 RSS 피드
- 4. WEBVIEW에 게시 된 URL의 매개 변수를 Android에서 가져 오기
- 5. android에서 Picasa에서 이미지 가져 오기
- 6. android에서 현지화 된 문자열 가져 오기
- 7. URL 가져 오기 후
- 8. WebView의 URL 범위는 무엇입니까?
- 9. android에서 뉴스 가져 오기
- 10. android에서 SoftKeyboard 가져 오기
- 11. POST 전에 리디렉션 된 URL 가져 오기
- 12. 문자열에서 URL 가져 오기
- 13. URL 뒤로 가져 오기
- 14. 요소의 URL 가져 오기
- 15. wireshark에서 URL 가져 오기
- 16. 변수가있는 URL 가져 오기
- 17. 제품 URL 가져 오기
- 18. 텍스트에서 URL 가져 오기
- 19. 참조 된 엔터티를로드하지 않고 EntityKey 가져 오기
- 20. ASP.NET에서 현재 URL 가져 오기
- 21. TinyURL에서 실제 URL 가져 오기
- 22. WCF에서 클라이언트 URL 가져 오기
- 23. URL 세그먼트에서 태그 가져 오기
- 24. Android에서 SQLite 열의 선호도 가져 오기
- 25. 코드에서 URL 리디렉션 가져 오기
- 26. Android에서 기기 정보 가져 오기
- 27. android에서 어댑터의 childview 가져 오기
- 28. Android에서 즐겨 찾기 가져 오기
- 29. Android에서 노래 정보 가져 오기
- 30. Android에서 SQLite 파일 가져 오기
작동하지만 실수가 있습니다. 당신이 PageA에 있다면 당신은 PageB로갑니다. 이제 뒤로 버튼을 누르면 페이지 A로 돌아갑니다. 그러나 이제 다시 버튼을 누르면 페이지 B가 이전 페이지이므로 페이지 B로 다시 이동합니다. 따라서 두 페이지 사이를 영원히 반복합니다. –
어쨌든 역사를 사용하여 페이지를 탐색하지 않았으므로 제 경우에는 문제가되지 않습니다. 로깅 목적으로 만 필요했습니다. backForwardList를 사용하여 탐색 하시겠습니까? 그렇다면 왜? 안드로이드 브라우저는 기본적으로 그것을 돌볼 것입니다, wouldnt? –
아주 간단한 브라우저를 구현해야했습니다. 나는 이것을 대신 사용했다 :'if (browser.canGoBack()) {browser.goBack()} else {finish()}'이것은 잘되었다. –