2011-10-02 9 views
5

HTML5 캐시 매니페스트에 대해 읽었으며 Android에서 캐시 매니페스트를 사용하여 웹 캐싱을 지원하는 것을 보았습니다. 캐시 매니페스트를 사용하여 웹 사이트에 필요한 모든 리소스를 다운로드하여 프리로드하고 WebView를 열고 캐시 된 리소스를 사용하여 원격 웹 사이트를 표시하려고합니다. 캐싱 프로세스를 위해 WebView를 사용하지 않고 원격 페이지를 미리 캐시하고 싶습니다.Android WebView에서 볼 수 있도록 웹 페이지를 미리 캐시 할 수 있습니까?

프리 캐싱 프로세스에 WebView를 사용할 때의 문제점은 WebView를 사용하여 웹 페이지를로드하면 페이지를 다운로드하는 대신 렌더링하고 실행한다는 것입니다.

나는 이것을 읽었습니다 : http://alex.tapmania.org/2010/11/html5-cache-android-webview.html,하지만 WebView 지원 캐싱은 내가 원하는 것이 아닙니다. 나는 로딩 프로세스가 순간적으로 이루어지기를 원한다. (원격 웹 사이트의 캐시 매니페스트/etags가 캐시 된 버전과 같다고 가정하자.) WebView가로드되고 캐시되는 것을 기다리는 대신 리소스를 사전 캐싱 한 직후이다. 첫 번째 액세스.

나중에 볼 수 있도록 웹 페이지를 미리 캐싱하는 올바른 방법은 무엇입니까?

감사합니다.

답변

8

원하는 것은 데이터베이스 API를 사용하는 HTML5 앱용 앱 캐시, 링크 된 리소스, 쿠키 및 로컬 데이터베이스 저장소에 대한 메커니즘을 구현해야하며 현재 요즘 브라우저에서 중요한 부분입니다. 나는 많은 일을하기 때문에뿐만 아니라 외부 캐시를 허용하는 친구 인 WebView과 친구 (WebViewClient 등)의 어떤 방법도 기억하지 못하기 때문에 캐싱을 직접하지 않는 것이 좋습니다.

그러나 문제는 매우 간단한 해결 방법입니다. WebView을보기에두고 visibilitygone으로 설정할 수 있습니다. 그런 다음 페이지 로딩이 끝나면 보이게하십시오. WebView은 앱의 캐시를 자동으로 유지하므로 다음에 실행될 때 페이지를 더 빨리로드합니다.

WebView을 숨긴 다음 onPageFinishedWebViewClient으로 무시하면됩니다.

+0

완벽하게 작동합니다. – VictorPurMar

관련 문제