17 votes

Phonegap iOS 5.1 et localStorage

J'utilisais localstorage pour sauvegarder une valeur dans mon application, qui fonctionne avec PhoneGap, mais quand Apple a publié le nouvel iOS 5.1, mon application ne sauvegarde plus la valeur.

Quelqu'un sait-il comment résoudre ce problème ?

Merci beaucoup ! !!

Edit : J'ai mis le code que j'utilisais :

window.localStorage.setItem("login", $('#login').val());

Je l'utilise pour sauvegarder la valeur, et je l'utilise pour lire la valeur :

function onDeviceReady() {
    var login = window.localStorage.getItem("login");

    if (login != null) {
        $('#login').val(login);
    }
}

Mais lorsque je ferme l'application, les valeurs ne sont pas enregistrées.

23voto

Drew Dahlman Points 3929

Il y avait un grand fil de discussion dans le groupe phonegap qui parlait de ce problème. En gros, c'est parce qu'ils traitent maintenant localStorage comme un élément temporaire qui peut être supprimé à tout moment. N'ayez crainte, il y a des gens très intelligents au travail !

voici le fil - https://groups.google.com/forum/?fromgroups#!topic/phonegap/RJC2qA9sDnw

voici le code - http://pastebin.com/5881768B

8voto

Lakshman Prasad Points 24002

Dans iOS 5, Apple a rendu le stockage local persistant par défaut. Dans iOS 5.1, localstorage est devenu un dossier temporaire qui peut être supprimé par le système d'exploitation chaque fois que l'espace de stockage est limité. Dans iOS 6, localstorage est devenu un dossier facultativement persistant grâce à un indicateur dans le paramètre.

Phonegap 2.0 ciblait iOS 5.1 et fournissait un mécanisme de plugin pour assurer la persistance, même si iOS ne le faisait pas.

Avec iOS 6 et phonegap 2.1, on a essayé d'utiliser le plugin uniquement si la version d'iOS est 5.1 et de revenir au mécanisme natif d'iOS pour la persistance du dossier.

Cependant, il y a un bug avec ce correctif, sur iOS 6, où le dossier localstorage est supprimé la première fois, les données sont stockées : https://issues.apache.org/jira/browse/CB-1535 Le rapport de bogue contient également le correctif ; cependant, il n'est pas encore prévu qu'il fasse partie de l'une des versions de PhoneGap ; vous devrez donc appliquer manuellement le correctif.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X