2010-11-11 13 views
23

Mam ogromny problem z opracowaniem aplikacji na Androida, która korzysta z widoku sieci Web do wyświetlania danych. Na stronie internetowej używam w WebView używać localStorage API HTML 5.Android - Tworzenie strony internetowej DomStorage jest trwały po zamknięciu aplikacji

Aby włączyć tę funkcję I ustawione webview ustawienie tak:

webview.getSettings().setDomStorageEnabled(true); 
webview.getSettings().setJavaScriptEnabled(true); 

tak więc prace API localStorage ale kiedy zamykam aplikacja (i zabić proces), localStorage jest kompletnie wymazane i po przeładowaniu wszystkie moje dane są tracone.

Moje pytanie jest proste: jak sprawić, aby DomStorage z podglądem strony internetowej był trwały nawet po zamknięciu aplikacji?

Dziękuję za wszystkie przyszłe odpowiedzi.

+2

znalazłem rozwiązanie, trzeba ustawić DatabasePath w celu zaoszczędzenia dane teleadresowe. webview.getSettings() setDatabasePath(); – jimroot25

+1

można dzielić co ścieżkę, na którą ją nastawiłeś? Jestem fasadą g ten sam problem teraz. – dongshengcn

+0

czy moja odpowiedź rozwiązała Twój problem? – Panthro

Odpowiedz

10

Czy ustawiłeś DatabasePath? Android nie wie, gdzie się zapisać DOMDatabase domyślnie, jeśli nie ustawić go nazywając

+1

Uwaga: można tylko raz wywołać ścieżkę setDatabase - kolejne wywołania są ignorowane. Musisz przerwać aplikację, aby zmusić WebKit do przeładowania (wywołanie Activity.finish() tego nie zagwarantuje) zanim jakiekolwiek kolejne połączenia wpłyną na – gheese

9
// Confimed on android 2.1 emulator 
// enable javascript localStorage 

WebSettings webSettings = myWebView.getSettings(); 
webSettings.setDomStorageEnabled(true); // localStorage 

// e.g., if your package is www.myapp.whatever; 
webSettings.setDatabasePath("/data/data/www.myapp.whatever/databases/"); 
+0

co w andorid 2.2, czy działa, czy nie, ponieważ dla mnie w 2.1 to działa, ale nie w wersji 2.2. – Karthi

+0

Jeśli używasz "setDatabasePath przestarzałe" błąd z tego użycia, w chrome webkit przeglądarka obsługuje samą ścieżkę. [Zobacz tę odpowiedź na więcej] (http://stackoverflow.com/questions/21319279/android-webview-setdatabasepath-deprecated) –

6

należy włączyć do bazy danych, a także ustawienie jego ścieżkę:

webview.getSettings().setDatabaseEnabled(true); 
webview.getSettings().setDatabasePath(); 
webSettings.setDomStorageEnabled(true); 

pierwsza linia złapał mnie za jakiś czas ...

0

powyższy post jest mieszanie dwóch diferent pojęcia:

Aby utrwalić dane po zamknięciu sesji, upewnij się, że sesja nie jest używana (w javascript). Przechowywanie

Magazynowanie obiektów i bazy danych to dwie różne rzeczy. Przechowywanie baz danych nie jest częścią HTML5: http://www.tutorialspoint.com/html5/html5_web_sql.htm

DOMStorage jest bardziej powiązany z HTML5 i zawiera pamięć sesji, która - przez projekt - zniknie po zamknięciu przeglądarki. Znajdziesz więcej trafień poprzez poszukiwanie „pamięci lokalnej”, że 'przechowywanie DOM'

http://viralpatel.net/blogs/introduction-html5-domstorage-api-example/

Dlatego, aby umożliwić DOMstorage wystarczy tego. webSettings.setDomStorageEnabled (true);

Powiązane problemy