2016-06-28 7 views
0

Ich entwickle eine App mit dem ionischen Framework mit Cordova läuft auch, dass ich einige Daten im lokalen Speicher des Benutzers (Android/iOS) speichern (ex. SD) und ich kann es nicht speichern, indem ich das iSystem lokal verwende, weil es die Daten im Cache speichert.Erstellen Sie lokalen Speicher (Gerät, nicht Cache) mit Ionicframework

In anderen brauche ich meine Daten für eine lange Zeit in dem Gerät bestehen.

Welche anderen Lösungen habe ich?

+1

http://www.html5rocks.com/en/tutorials/offline/storage/ könnte helfen. – Phonolog

+0

@Phonolog Auf diese Weise benutze ich immer noch Cache, im Browser, aber es ist immer noch Cache:/ – xRed

+1

Es ist so ziemlich ein Überblick über verschiedene Möglichkeiten, Daten zu persistieren, wenn Sie auf das Dateisystem/SD-Karte des schreiben möchten Benutzer, siehe [dieser Abschnitt] (http://www.html5rocks.com/en/tutorials/offline/storage/#file-access). – Phonolog

Antwort

1

HTML5 Webspeicher (d. H. LocalStorage) ist nicht immer eine schlechte Option. Es ist ein leicht verfügbarer Schlüsselwertspeicher, der weitgehend unterstützt wird. Und nein, es ist nicht gespeichert genau in einem Cache, d.h. Daten in localStorage nicht verfallen noch wird nach dem Zufallsprinzip abgewischt. Es handelt sich jedoch um einen begrenzten Speicher mit niedriger Priorität, dessen genaue Angaben von Plattform zu Plattform variieren.

Das heißt, wir folgende zuverlässiger Alternativen haben, je nachdem, was genau wollen Sie speichern:

  1. india SQLite - Als Cordova App, App Zugang zu schaffen hat und Verwenden Sie eine native SQLite-Datenbank genau wie native mobile Apps über eine Drittpartei SQLite Plugin. Von JavaScript aus würden Sie auf Ihre Daten genauso zugreifen wie auf WebSQL außerhalb von Cordova. Ionic/ngCordova hilft hier durch Utility-Wrapper um die SQLite Plugin bietet: $ cordovaSQLite

  2. Mutterfilesystem - Als Cordova App, App hat Zugriff auf den lokalen Dateispeicher (auch auf der SD-Karte in Android , wenn der Benutzer den Container der App gespeichert hat) über den Standard File Plugin. Auch hier bietet Ionic ein Dienstprogramm Wrapper um es mit vielen nützlichen Funktionen: $ cordovaFile (check ngcordova.com/docs/plugins/)

IndexedDB ist auch hier erwähnenswert. Keine native mobile Lösung, aber dieser noSQL-Speicher wird schnell zum Standard für große und zuverlässige browserseitige Speicherung, wodurch WebSQL überflüssig wird. IOS-Webansicht hat jedoch fehlerhafte und unvollständige Unterstützung für IndexedDB (caniuse.com/#search=indexeddb)

Wählen Sie Ihre Lösung abhängig von WAS sind die Daten, die Sie speichern möchten. Zum Speichern von Anwendungsdaten verwende ich eine Kombination aus Native SQLite (für strukturierte Daten) und localStorage (für Schlüsselwertdaten, meist UI-Einstellungen). Zum Speichern von Ressourcen gibt es immer das Dateisystem.

+0

Wenn Sie nur etwas ähnliches wie localStorage, d. H. Schlüsselwert-Datenpaare, möchten, können Sie Ihre eigene Datei erstellen und sie lesen. Wenn die Daten die Präferenzen Ihrer Anwendung sein sollen, gibt es auch ein [Preferences Plugin] (http://ngcordova.com/docs/plugins/preferences/), das ähnliche Schlüsselwerte speichert. – Gaurav

+0

HINWEIS: Wenn Sie möchten, dass Ihre Daten auch nach der Deinstallation der App erhalten bleiben, haben Sie nur eingeschränkte Möglichkeiten.Ich kann mir das nur vorstellen, wenn Sie Ihre Daten in einer Datei außerhalb des App-Containers in einem öffentlichen Verzeichnis speichern, entweder mit dem Datei-Plugin oder dem Präferenz-Plugin (prüfen Sie die obigen Links, um beide zu sehen). Alles andere ist dazu bestimmt, zusammen mit der App gelöscht zu werden :-) – Gaurav