Phonegap En Mode Hors Connexion De La Base De Données
Je veux stocker certains grand de données hors connexion de l'utilisateur téléphone (plus de 100 MO) dans un chiffré base de données. Si possible, je tiens également à distribuer la base de données pré-remplies. J'ai également vu cette.
Que je sais sur les webdatabase chose, mais parce que c'est amorti, je suis conseillé de ne pas travailler avec ça.
J'ai aussi vu certains de ses plugins tiers tels que SQLite Plugin, mais il ne fonctionne que pour les appareils iOS et Android, mais je cible 4 plates-formes (ios, android, blackberry, windows)
Est-il un autre solution, autre que d'écrire mon propre?
- SQLite fonctionne très bien avec blackberry ainsi
- faire yo pense que dans une solution possible pour mettre en œuvre indigène, dans tous les 4 plate-forme? base de données relationnelle qui est vraiment nécessaire, n'est pas assez d'un fichier (binaire)?
- Moi aussi, je veux une solution qui s'étend à travers tous les 4 plates-formes. Ou est-il un plugin ou une alternative à sqlite que nous pouvons utiliser sur les téléphones windows ?
- utilisation SQLCipher base de données.
Vous devez vous connecter pour publier un commentaire.
J'ai fait une application récemment que nécessaire ce, viser le même OS. Vous pouvez utiliser une combinaison de 2 bases de données :
1. LocalStorage ::
Vérifier localStorage
Définir un élément dans LocalStorage
ou
Obtenir un élément de LocalStorage
ou
2. La Base de données SQLite (plus pratique, plus persistive)
Configurer votre DB
Créer vos Tables
Exécuter une Requête SQL
EDIT :: j'ai oublié d'ajouter dans la dernière option 🙂
3. Stockage natif sur tous les appareils
C'est la meilleure partie de Phonegap. Vous pouvez faire appel à un natif classe de plugin sur tous les appareils utilisant le plugin Phonegap appel. Pendant l'appel, vous pouvez passer des paramètres à la classe, et la classe native pouvez stocker vos données dans le système d'exploitation lui-même.
Par exemple : dans iOS, vous devez créer un plugin .h & .m classe et l'enregistrer avec le Cordova.fichier plist. Une fois cela fait, vous avez besoin d'envoyer un appel à la classe à partir de JavaScript à l'aide de Phonegap. Une fois que les paramètres ont été reçues à l'aide de NSDictionary ou de tout autre NSArray type, vous pouvez faire appel à un CoreData classe pour stocker des quantités ILLIMITÉES de données. Vous ne serez jamais à court de mémoire .
Cela peut être fait de la même façon pour tout le reste de l'OS, aussi 🙂
Pour le Chiffrement, essayez les opérations suivantes :: SQLCipher
Voici quelques informations supplémentaires sur la façon de travailler avec une base de données SQLite. Dans cet exemple chiffré.db, c'est que la marque nouvelle base de données que vous créez et pragma.
Dans la spécification du W3C pour webdatabase il est mentionné que les Applications Web du Groupe de Travail continue de travailler sur deux autres liées au stockage spécifications: De Stockage Web et Base de données indexée API.
De sorte que le webdatabase spécification n'est plus actif, mais les deux autres spécifications sont actifs.
Le Web de Stockage peut être utilisé pour stocker des données localement dans le navigateur de l'utilisateur. Il y a les objets suivants à atteindre:
Le Stockage Web n'est pas recommandé pour votre cas (plus de 100 MO), parce que la spécification du W3C mentionne que:
À mon avis SQLite est la meilleure option, car elle est une bibliothèque de processus qui met en œuvre une auto-contenue, sans serveur, sans aucune configuration, transactionnelle SQL moteur de base de données. En outre, le SQLite limites semble couvrir vos besoins:
Concernant vos conditions de chiffrement, vous devez considérer les SQLCipher qui est une extension SQLite.
Une autre option est de chiffrer et déchiffrer vos données lors de l'écriture et de la lecture de votre base de données.
J'espère que cette aide.
L'application mobile sur lequel je travaille une exigence similaire. Il nécessite un accès hors ligne à un tableau qui contient près de 500 000 pièces différentes en elle. La source de ce tableau est extrait à partir du serveur en obtenant sa JSON via un GET URL.
J'ai considéré Indexé DB, mais les navigateurs mobiles à l'intérieur d'iOS et d'Android ne prennent pas en charge cette. Web local de stockage n'est pas une option en raison de son dur de 5 MO. Donc, j'ai décidé d'utiliser le Web, Base de données SQL standard ( http://www.w3.org/TR/webdatabase/ ), même si sa obsolète. Mon expérience jusqu'à présent avec l'aide de Web de Base de données SQL a été très bonne. Opérations de base de données fonctionnent très bien et sont très fiables sur les appareils mobiles que j'support (iPad 2, iPad 3, Motorola Xyboard, Samsung Galaxy Tab 2). De Plus, Phonegap expose une API JavaScript pour fonctionner avec cette norme (voir http://docs.phonegap.com/en/2.5.0/cordova_storage_storage.md.html#Storage).
J'ai écrit un utilitaire Java qui convertit le téléchargement des données JSON dans une base de données SQLite dont les fichiers sont emballés dans le cadre de l'Android APK ou l'application iOS paquet.
Quand mon Phonegap application mobile démarre, il utilise le code natif pour vérifier l'application du privé répertoire de données pour la présence de la base de données SQLite fichiers. Si les fichiers ne sont pas présents, le code natif copie les fichiers de base de données à partir du package de l'application.
Mon application est basée sur l'exemple de code que j'ai trouvé sur le lien ci-dessous. J'espère que cette aide. Laissez-moi savoir si vous avez des questions au sujet de mon implémentation particulière.
http://gauravstomar.blogspot.com/2011/08/prepopulate-sqlite-in-phonegap.html
J'ai essayé d'utiliser LokiJS comme une base de données locale, et l'a trouvé utile de données non relationnelles. Dans mon cas, j'ai récupérer les données stockées à l'aide de MongoDB sur le serveur, mais il dépend de la nature de votre système
Voir ces questions/réponses:
D'ouverture et de stocker des documents chiffrés en mode hors connexion dans iOS
Ne PhoneGap /Apache Cordova proposer une API permettant de cryptés la base de données SQLite
Lors de l'utilisation de Mono Touch puis-je également forfait pour une Fenêtre standard de l'application?