web-dev-qa-db-fra.com

Utilisation du stockage local dans le vide téléphonique

Je voulais créer une application mobile pour mon projet Web. J'ai trouvé une différence téléphonique. Il dit facilement créer des applications en utilisant HTML, CSS et JavaScript. Je n'ai pas créé d'application mobile en utilisant l'écart de téléphone auparavant. Il existe trois options de stockage memory-store.js (MemoryStore), ls-store.js (LocalStorageStore) et websql-store.js (WebSqlStore). Je veux juste enregistrer un jeton pour reconnaître l'utilisateur. Quel stockage est le mieux adapté. Existe-t-il un meilleur moyen de créer une application mobile?.

J'apprécie toute aide.

22
Leah Collins

Utiliser le stockage local sera probablement le plus facile pour vos besoins.

Les applications PhoneGap sont essentiellement des applications natives (qui peuvent donc être distribuées via des magasins d'applications) qui exécutent simplement une ou plusieurs pages Web. L'API PhoneGap fournit ensuite des points d'ancrage JavaScript aux fonctions de l'appareil telles que l'appareil photo, etc. Il y a plus que cela, mais pour l'instant c'est l'arrière-plan.

Donc, comme l'application est essentiellement une page Web (HTML5, CSS, JS), vous pouvez utiliser LocalStorage (qui fait partie de HTML5).

Exemple d'utilisation du stockage local:

Valeurs de réglage:

localStorage.myname = "Greg";

Obtenir des valeurs:

localStorage.myname; // returns "Greg"

Plus d'informations ici pour le stockage local: http://diveintohtml5.info/storage.html

Pour Windows Phone 7: http://docs.phonegap.com/fr/3.4.0/cordova_storage_storage.md.html#Storage

La syntaxe est la suivante 

localStorage.setItem("name", "Alen");

localStorage.getItem("name"); //will return Alen
41
Greg

Un point à ajouter sur l'utilisation de localStorage est qu'il n'est pris en charge que par les périphériques compatibles HTML5. Pour les appareils plus anciens (un choix judicieux pour les nouveaux appareils), l'option consiste à utiliser la mise en œuvre SQLite de phonegap. Vois ici...

1
Hammer

Je vous recommande également de vous pencher sur la solution de stockage persistant Lawnchair. Il a été construit avec une première approche mobile. Je l'ai utilisé dans certains projets; ça marche vraiment bien.

Exemple de code

var store = new lawnchair({name:'testing'}, function(store) {
    // create an object
    var me = {key:'brian'};

    // save it
    store.save(me);

    // access it later... yes even after a page refresh!
    store.get('brian', function(me) {
        console.log(me);
    });
});

Vous pouvez en lire plus à ce sujet sur http://brian.io/lawnchair/

0
apushpar

Ami, j'ai aussi essayé sans succès d'utiliser des cookies avec Phonegap. La solution était utiliser localStorage. 

Exemple rapide clé:

 var keyName = window.localStorage.key(0);

Exemple d'article rapide:

 window.localStorage.setItem("key", "value");

Exemple d'obtention rapide d'un article 

 var value = window.localStorage.getItem("key");
 // value is now equal to "value"

Supprimer un article exemple rapide:

 window.localStorage.removeItem("key");

Exemple rapide clair:

 window.localStorage.clear();

Si vous utilisez votre javascript pour le Web et le mobile, vous pouvez utiliser ce code pour détecter cet environnement:

var wl = window.location.href;
var mob = (wl.indexOf("Android")>0);

Références: http://docs.phonegap.com/fr/1.2.0/phonegap_storage_storage.md.html#localStoragehttp://cordova.Apache.org/docs/en /6.x/cordova/storage/storage.html#page-toc-source

Sachez que l'utilisation de la navigation anonyme sur iOS peut empêcher le stockage local de fonctionner correctement. Un test simple qui fonctionne bien pour moi:

$(document).ready(function () {
    try {
        localStorage.setItem('test', '1');
    } catch (Err) {
        if (Err.message.indexOf('QuotaExceededError') > -1) {
            // Tell the user they are in anonymous mode
            // Sugest it to go to https://support.Apple.com/pt-br/HT203036 to get help to disable it
            }
        }
    }
});
0
Tiago Gouvêa