J'ai une application Android simple qui a une vision webview. Le webview est défini pour parcourir un site qui utilise la fonctionnalité localStorage de JavaScript.
J'ai déjà eu mes serveurs de sites Web pour permettre à Domstorage: p> Ce dont j'ai besoin est une façon que mon code Java puisse lire une variable stockée à l'aide du mécanisme localStorage, IE.: P> Le JavaScript le fait: P> var storage = window.localStorage;
storage.setItem("name", "Hello World!");
4 Réponses :
yourWebView.setWebChromeClient(new WebChromeClient(){ public boolean onJsAlert(WebView view, String url, String message, JsResult result) { Log.d(tag, "That's my local storage value =" + message); return false; }; }); (...) yourWebView.loadURL("javascript:alert(localStorage.getItem(\"name\"))");
Cela me donne: "Uncaught SecuritherError: Impossible de lire la propriété" localStorage "de" fenêtre ": l'accès est refusé pour ce document."
@Onheon je suis également confronté au même problème. L'avez-vous résolu?
Dans votre activité
window.JSInterface.getVariable(localStorage.getItem("variableName"))
Cela utilise JavaScript pour obtenir la valeur. J'ai besoin de mon application Android pour demander la valeur du navigateur, et non le navigateur de l'initier. Je ne peux pas appeler webview.loadrurl code> ou
webview.evalatesjavascript code> en utilisant cette méthode car elle ne le fait jamais.
Oui possible à lire la valeur localeStorage en Java (Android).
Utilisez ce plugin https://www.npmjs.com/package/cordova-plugin-nativestorage qui utilise un stockage natif. P>
-Pour que nous devons définir la valeur dans Cordova P> et dans le fichier Java Anroid pour obtenir cette valeur: p > SharedPreferences sharedPreferences = getSharedPreferences("MainActivity", MODE_PRIVATE);
System.out.println("********--------- shared pref values... " + sharedPreferences.getString("myid", "no value"));
Pour écrire des données:
webView.getSettings().setJavaScriptEnabled(true);
Pas une solution unique ici fonctionne pour moi. Avez-vous eu de la chance?