localStorage von html5-feature funktioniert nicht in der WebView auf dem Samsung Android-Gerät
Habe ich eine html5-Anwendung, die ich wickeln mit einem WebView. Zum speichern und abrufen von Benutzer-Eingabe von Werten zwischen Seiten, die ich verwenden "localStorage" html5-feature.
Es funktioniert gut auf meinem Nexus 4 (Android 4.4.4), aber es funktioniert nicht auf Samsung Galaxy Tab 2 (Android 4.3.x) (= nichts passiert, aber auch keine Fehler im logcat).
Oder, um deutlicher zu sein: auf Samsung, es funktioniert nicht, wenn die html-Seiten geladen, von innerhalb der app-asset-Ordner. Es funktioniert aber, wenn ich die Seiten auf einem server, wie unten in der outcommented Linie.
Jedoch auf dem Nexus 4, loading from file:///android_asset/und auch wenn ich das laden der Seiten auf einem desktop-browser (Chrome, Firefox) aus file://Pfad, es ist auch Arbeit.
Update 1: ich hatte gerade ein anderer Benutzer berichtet, das Problem mit einem LG-Gerät, so es scheint nicht Samsung spezifisch.
Update 2: Speichern und laden der Wert aus dem localStorage-funktioniert auf allen Geräten auf der gleichen Seite, jedoch nicht zwischen den verschiedenen Seiten. In meinem Beispiel, ich kann speichern und abrufen, die Wert auf 01_home.html, aber wenn ich auf einer anderen Seite in android_asset Ordner, ich kann es nicht Lesen mehr (auf LG -, Samsung-Geräte). Funktioniert gut auf dem Nexus 4 aber.
Unten sind die Einstellungen der web-Ansicht.
webView = (WebView)this.findViewById(R.id.webView);
webViewClient = new MyWebViewClient(this);
webViewClient.setSm(sm);
webView.setWebViewClient(webViewClient);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
webView.getSettings().setAppCacheEnabled(false);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setBuiltInZoomControls(false);
webView.getSettings().setSupportZoom(false);
webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
webView.loadUrl("file:///android_asset/01_home.html"); //does NOT work!
//webView.loadUrl("http://192.168.178.33/01_home.html"); //does work!
Lokalen Speicher-code in die Seiten:
//storing
var data = document.getElementById('data').value;
window.localStorage.setItem((1), data);
//reading
document.getElementById('data').value = window.localStorage.getItem(1);
- Thema auf Android-Entwickler-Liste: groups.google.com/forum/#!Thema/android-Entwickler/gssOdQLroAY
- Ich habe das gleiche Problem. Haben Sie eine Lösung für dieses?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich diesen gleichen Fehler. Funktionierte auf alle Nexus-Geräte, aber alle Samsung-Geräte verloren meinen Benutzer geändert werden. Ich weiß, der unten Methode ist veraltet aber es löste mein Problem.
Gibt es Antworten auf diese gebucht anderswo Android webview & localStorage
Lösung vorgeschlagen: