2012-01-18 9 views
9

Jaki byłby najlepszy sposób zmuszenia Androida do przechowywania przeglądarki internetowej na nośniku po załadowaniu strony?Przechowywanie widgetu WebView do przeglądania w trybie offline

Jeszcze kilka szczegółów:

  • Każda strona będzie bogaty ze zdjęciami, skryptów i stylizacji.

  • Każda strona będzie miała rozmiar od 0,5 do 1 megabajta.

  • Zostaną one zapisane po wywołaniu OverFind OnFinishedLoading.

  • Najlepiej byłoby zapisać go na karcie SD, a następnie użyć lokalnego repo, aby otworzyć go z powrotem.

Nie jestem pewien, czy powinienem użyć bazy danych sql do przeglądania stron internetowych, lub wziąć każdy widok i napisać do pliku.

Jeśli zrobię to drugie, jaki byłby najłatwiejszy sposób, więc nie muszę pisać pełnego webcrawlera, aby każdy plik był połączony?

Odpowiedz

7

Aby korzystać z buforowania w systemie Android, musisz podać plik manifestu HTML5 wraz z kodem HTML.

<!DOCTYPE html> 
<html lang="en" manifest="manifest.file"> 
<head> ... 

Mechanizm buforowania będzie cache cokolwiek wpisy, które pojawią się w pliku manifestu w bazie danych SQLite. Pamiętaj, że baza danych to aplikacja, a nie widok internetowy. (Miałem z tym wiele problemów).

W tym artykule opisano wszystkie czynności, które należy wykonać, aby to osiągnąć. http://web.archive.org/web/20140314001433/http://alex.tapmania.org/2010/11/html5-cache-android-webview.html

Można zrobić przykład hello-world dla buforowania za pomocą tej strony internetowej: http://html5demos.com/offlineapp

można zapisać w pamięci podręcznej na kartę SD, tak długo, jak dodać pozwolenie WRITE_EXTERNAL_STORAGE do manifestu aplikacji.

Powodzenia!

+1

Rozumiem, dzięki - to ma sens. Czy to nie jest limit 10 MB? Mam na myśli, widziałem również w źródle to: webView.getSettings(). SetAppCacheMaxSize (1024 * 1024 * 8); Ale to wciąż rodzi pytanie, jak duże może być? Może tylko 10 mb na stronę? Jeśli tak jest, po tym, jak został on zbuforowany, po prostu zadzwoniłbym do podglądu strony internetowej przy użyciu ustawień internetowych. Czy to prawda? –

+2

Jeśli folder buforowania widoku internetowego jest ustawiony na kartę SD, nie będzie to miało wpływu na folder pamięci podręcznej aplikacji. Możesz nawet wywołać 'webview.clearCache()', aby to sprawdzić, baza danych na karcie SD nie zostanie usunięta. – Daniel

Powiązane problemy