2017-01-06 3 views
0

Ich baue eine mobile Anwendung in Cordova. Und müssen Benutzerdaten speichern.Daten von Cordova von IndexedDB und webSQL synchronisieren

Wenn ein Benutzer keine Internetverbindung hat, werden die Daten lokal gespeichert. Wenn es mit dem Internet verbunden ist, sollte es mit einer Online-Datenbank synchronisiert werden. Geräte: Windows Phone, Android, iOS.

Ich habe über CouchDB und PouchDB gelesen. Jetzt habe ich Probleme, folgendes zu verstehen: iOS funktioniert nur mit WebSQL, Windows nur mit IndexedDB und Android mit beiden. Wie kann ich WebSQL und IndexedDB synchronisieren, damit Daten von einem Windows Phone auf iOS angezeigt werden können?

Antwort

1

Sie müssen sich keine Gedanken über die zugrunde liegenden Datenbanken machen. Sie arbeiten immer mit JSON-Dokumenten (wie in der docs beschrieben) in einer PouchDB oder CouchDB. Sie werden ein JSON-Dokument auf jedem Betriebssystem speichern, mit einem anderen Betriebssystem synchronisieren und ein JSON-Dokument von der synchronisierten Datenbank erhalten.

Was Ihr Verständnis von Problemen verursachen könnte, ist, wie PouchDB diese JSON-Dokumente intern speichert. PouchDB ist keine Datenbank selbst, es verwendet andere Datenbanken, um seine Daten zu speichern (taken from the docs). Abhängig vom verwendeten Browser sind IndexedDB, WebSQL oder beide verfügbar. Siehe das mobile Diagramm here. Safari unterstützt nur WebSQL, nur Internet Explorer Mobile IndexedDB, Chrome. Wenn Sie sich interessieren, überprüfen Sie die Caniuse für IndexedDB und WebSQL aswell.

Wenn es erforderlich ist, die gleiche zugrunde liegende Datenbank auf jedem Betriebssystem zu verwenden, können Sie eine SQLite-Datenbank mit dem entsprechenden Adapter verwenden, wie von Dave erwähnt.

+0

Danke für die Erklärung! – thomagron

1

Wenn Sie das cordova-sqlite-storage Plugin verwenden, haben Sie eine native SQLite DB mit unbegrenztem Speicher (anders als WebSQL/IndexedDB im WebView) und eine gemeinsame WebSQL-ähnliche Schnittstelle, die auf allen Ihren Zielplattformen funktioniert.

Sie können dann die PouchDB adapter verwenden, um die PouchDB-Schnittstelle bereitzustellen.

Verwandte Themen