2013-11-22 5 views
1

Android WebView에서 웹 사이트를 표시하고 해당 웹 사이트의 모든 이미지가 포함 된 전체 HTML을 기기의 저장 공간에 다운로드하고 싶습니다. WebView 다운로드 페이지의 모든 자산을 표시 할 수 있도록하기 위해 같이Android의 WebView에서 모든 이미지 가져 오기

내가 WebView에서 페이지를로드하는 경우는 중복 작업을 할 것이다, 그 후 바로 다시 HTML 및 이미지를 다운로드?

그래서 나는 WebView이 다운로드 한 내용에 액세스하여 장치의 저장소에 복사 할 수있을 것이라고 생각했습니다. 이것이 가능한가?

this page에 따르면, 당신은 자바 스크립트 인터페이스를 설정하고 다음과 같은 몇 가지 자바 스크립트 문을 호출 할 수 있습니다

webView.loadUrl("javascript:doSomething()"); 

그래서 내가 페이지의 HTML을 얻을 수 난 그냥 자바 스크립트의 document.innerHTML 또는 document.getElementById('theID').innerHTML을 사용합니다.

이미지의 경우 JavaScript를 사용하는 것보다 쉬운 해결책이 있습니까? 문제는 내가 URL이 아니라로드 된 리소스를 원한다는 것입니다. WebView는 이미 모든 자산을 다운로드 했으므로 문제는 어떤 방식 으로든 액세스를 노출하는지 여부입니다.

this question에 설명 된대로 컨텍스트 메뉴 이벤트를 사용하여 이미지를 가져 오는 것이 가능할 것으로 보입니다. (Maybe even background images.)하지만 사용자 작업을 필요로하지 않고 모든 이미지를 일괄 적으로 저장하는 솔루션이 있습니까?

답변

4

간단히 : 아니요. Java의 WebView에서 다운로드 한 리소스에 액세스하는 API는 없습니다. 당신은 자신의 솔루션을 롤백해야합니다.

이미지의 경우 리소스를 다시 다운로드하지 않는 것이 유일한 방법은 <canvas> 요소에로드 된 이미지를 복사 한 자바 스크립트를 작성한 다음 다시 바이트로 읽는 것입니다. 데이터 URL. 그런 다음 해당 데이터 URL에서 Java 측의 이미지를 WebView의 JavaScript 인터페이스를 통해 Java로 전달하여 이미지를 디스크에 저장하거나 달리 작업 할 수 있습니다.

이러한 링크는 아마 당신에게 도움이 될 것입니다 :

관련 문제