Zugriff verweigert lokalen Speicher in Android WebView
Ich habe ein Android webview, dass ich glaube, hat alles, was erforderlich ist, um Zugang und die Nutzung localStorage, jedoch, sehe ich ein "Zugriff verweigert" - Fehler in der Konsole angezeigt wenn Sie versuchen, einen lokalen Speicher verwenden. Uncaught SecurityError: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
Kann jemand ein problem erkennen?
JavaScript-Code:
function localStorageTest() {
//Check browser support
if (typeof(Storage) != "undefined") {
//Store
localStorage.setItem("lastname", "Smith");
//Retrieve
document.getElementById("console").innerHTML = localStorage.getItem("lastname");
} else {
document.getElementById("console").innerHTML = "Sorry, your browser does not support Web Storage...";
}
}
Hier ist das Android-code:
//Enable javascript
WebSettings settings = getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
settings.setDatabaseEnabled(true);
//Create database folder
String databasePath = getContext().getDir("databases", Context.MODE_PRIVATE).getPath();
getSettings().setDatabasePath(databasePath);
getContext().getPackageName() + "/databases/");
settings.setAppCacheEnabled(true);
settings.setSaveFormData(true);;
settings.setLoadWithOverviewMode(true);
settings.setSaveFormData(true);
- Spielen Sie mit cookies von Dritten ?
- Sie hinterließ ein Tippfehler hier
getContext().getPackageName() + "/databases/");
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zugang zu
localStorage
ist nur zulässig auf den Seiten von "Web-safe" - Programme, wiehttp:
,https:
undfile:
. Es funktioniert nicht fürabout:
unddata:
Systeme zum Beispiel, oder für jede benutzerdefinierte Schema, das Sie verwenden könnten. Chrome verhält sich auf die gleiche Weise können Sie überprüfen Sie Sie auf den desktop.WebView.loadDataWithBaseUrl
und geben Sie eine Basis-URL beginnend mithttp:
Schema. Oder Sie können einen einfachen web-server innerhalb der app.file://
Protokoll dann?Manipulieren das Globale Objekt in JS brauchen wir einen trick. Wie @Michail Naganov sagte, Chrom beschwert sich über die Sicherheit Zugriff verweigert lokalen Speicher in Android WebView
Lade ich js als Basis-url in js auch redirect auf die tatsächliche url. Unten code war für mich in android 7
Uncaught SecurityError: Failed to read the 'localStorage' property from 'Window': Storage is disabled inside 'data:' URLs.
in meinem Fall. DankHabt Ihr Fragen für die Berechtigungen zum Zugriff auf storage-und Netzwerk-in Ihrem manifest.xml ?
Etwas wie dieses :