Utiliser le stockage local sur Android webview
Je suis expérimenter avec le code Android: je voudrais stocker une valeur à l'aide de HTML 5 de stockage local. Pour cet exercice je' l'aide d'une page aussi simple que cela:
http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_webstorage_local_clickcount
Mon manifeste ne permettez-moi de frapper l'internet, et il est de min-kit de développement sdk 7.
Voici mon code java:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDatabasePath("");
webSettings.setDomStorageEnabled(true);
webview.setWebChromeClient(new WebChromeClient());
webview.loadUrl("http://www.xyz.com/test.html");
///xyz.com/test.html is a sample :)
webview.setWebViewClient(new HelloWebViewClient());
}
Mon problème est que lorsque je ferme l'application, stockées localement la valeur n'est plus là. Je peux naviguer sur la même page en utilisant le navigateur par défaut, et la valeur est persistant même après la fermeture de l'émulateur, ce qui est exactement le comportement que je suis à la recherche d'.
C'est probablement quelque chose d'extrêmement simple....des idées?
OriginalL'auteur MrM | 2012-05-11
Vous devez vous connecter pour publier un commentaire.
Il semble que la chaîne vide DatabasePath est le problème. J'ai essayé un code similaire et avec une chaîne vide chemin, la valeur n'est pas persister après l'application se ferme. Si je définir un chemin de base de données, la valeur persiste comme prévu.
Essayer:
monsieur, si votre problème est résolu, vous devez marquer comme la réponse correcte et upvote, vous voyez la tique sur le côté gauche de la réponse?
Vous devez remplacer
"/data/data"
avec "contexte.getFilesDir().getPath()"OriginalL'auteur Robert Nekic
Si votre application utilisation de plusieurs webview vous allez encore avoir des ennuis : localStorage est pas correctement partagé sur l'ensemble des webviews.
Si vous souhaitez partager les mêmes données dans plusieurs webviews le seul moyen est de le réparer avec une base de données java et javascript interface.
Cette page sur github montre comment faire.
espérons que cette aide!
OriginalL'auteur Guillaume Gendre
Ne pouvais pas le faire fonctionner sur tous les appareils (en particulier avec ICS) - même avec le chemin de base de données, permettant DOMStorage etc. - l'utilisation de cookies au lieu de cela m'a aidé.
OriginalL'auteur Piotr