Saya memiliki masalah dengan tampilan web yang dapat mengakses ke localStorage oleh HTML5
aplikasi. File test.html memberi tahu saya bahwa penyimpanan lokal tidak didukung oleh browser saya (mis. The webview
). Jika Anda punya saran ..
package com.test.HelloWebView;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebStorage;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class HelloWebView extends Activity {
WebView webview;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebViewClient(new HelloWebViewClient());
webview.loadUrl("file:///android_asset/test.html");
WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDatabaseEnabled(true);
String databasePath = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();
settings.setDatabasePath(databasePath);
webview.setWebChromeClient(new WebChromeClient() {
public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize, long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) {
quotaUpdater.updateQuota(5 * 1024 * 1024);
}
});
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
webview.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
private class HelloWebViewClient extends WebViewClient {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
}
android
html
webview
local-storage
Thomas
sumber
sumber
metode setDatabasePath () sudah tidak digunakan lagi di API level 19. Saya menyarankan Anda untuk menggunakan penyimpanan lokal seperti ini:
sumber
Saya juga punya masalah dengan data yang hilang setelah aplikasi di-restart. Menambahkan ini membantu:
sumber
Solusi yang bekerja di Android 4.2.2 saya, yang dikompilasi dengan build target Android 4.4W:
sumber
Jika aplikasi Anda menggunakan beberapa tampilan web, Anda masih akan mengalami masalah: localStorage tidak dibagikan dengan benar di semua tampilan web.
Jika Anda ingin berbagi data yang sama dalam beberapa tampilan web, satu-satunya cara adalah memperbaikinya dengan basis data java dan antarmuka javascript.
Halaman ini di github menunjukkan cara melakukan ini.
semoga ini membantu!
sumber
jika Anda memiliki beberapa tampilan web, penyimpanan lokal tidak berfungsi dengan benar.
dua saran:
sumber