2012-09-14 3 views
0

웹 페이지에서 이미지를 가져 와서 로컬 저장소에 저장하고 싶습니다. HTML에서 모든 이미지 URL을 찾을 수 있으며 이미지를 서버에서로드하고 저장합니다. 하지만 나는 이미 webview에있는 동일한 정보에 대해 서버에 두 번째로 액세스하고 싶지 않습니다. 따라서 webview에서 이미지를로드하는 방법을 알고 싶습니다.wevbiew에서 이미로드 된 이미지 가져 오기

+0

캐시 시스템을 구현 한 적이 있습니까? – yugidroid

+0

이 경우 어떤 종류의 캐시를 구현하고 싶습니다. – Hayk

답변

1

WebView 캐시를 몇 단계로 설정할 수 있습니다. 아래를보십시오.

WebView webView = (WebView) findViewById (R.id.your_webView_Id);

String cacheDir = getDir ("your_WV_cache_dir", Context.MODE_PRIVATE) .getAbsolutePath(); webView.getSettings(). setAppCacheMaxSize (1024 * 1024 * 1); // 1MB 캐시 제한 크기> webView.getSettings(). setAppCachePath (cacheDir); webView.getSettings(). setAppCacheEnabled (true); webView.getSettings(). setCacheMode (WebSettings.LOAD_CACHE_ELSE_NETWORK); //이 상수는 당신에게 중요합니다. 이렇게하면 이미 다운로드 한 캐시에서 DAA를로드 할 수 있습니다.

WebView.WebSettings 공식 문서에서 위의 상수에 가능한 다른 값을 살펴보십시오.

작동하는지 알려주세요.

+0

안녕하세요. 빠른 응답을 보내 주셔서 감사합니다. 늦어서 유감스럽게 생각합니다.)) 여기에 제가 가지고 있는게 있습니다. 'cacheDir' 디렉토리에 하나의'applicationCache.db' 파일 만 있습니다. 'CacheGroups, sqlite_sequence, Caches, CacheWhitelistURLs, CacheAllowsAllNetworkRequests, FallbackURLs, CacheEntries, CacheResources, CacheResourceData, android_metadata '테이블이 10 개 있습니다. 마지막 테이블을 제외하고 모든 테이블은 비어 있습니다.이 테이블은 raw 인 'en-EN'과 같은 것을 하나만 포함합니다. 그리고이 모든 것은'WebView'에서 몇 페이지를 열어서했습니다. 그래서 캐시 디렉토리에 정보를 찾을 수 없다는 것이 이상합니다. – Hayk

+0

귀하를 환영합니다. 앱에서 동일한 콘텐츠 (캐시에 있다고 가정)를 사용할 수 있지만 인터넷에 연결되어 있지 않은지 이미 확인 했습니까? – yugidroid

+0

네, 필요한 모든 정보 ('HTML', 이미지,'JS' 파일,'CSS' 파일)가 캐시 된 것 같습니다. 수동으로 이런 종류의 캐시를 만들고 싶었습니다 ... 일반적으로이 문제가 해결되었으므로이 대답을 수락합니다. 하지만 이제는 캐시 무효화에 대한 또 다른 문제가 있습니다. 전체 캐시가 아닌 특정 URL에 대해서만 캐시를 무효화하려고합니다. – Hayk