Die Speicherung von Daten Offline hat Vor- / Nachteile. Anbei einige Argumente:
Vorteile
Nachteile
lokale Daten
keine resp. nur schlechte Teilbarkeit
Keine Internet-Verbindung nรถtig
Limitierung bei Multi-User
Fรผr kleine Daten optimal
Mรผhsame Verwaltung (Release-Upgrades)
Es gibt online sehr viele Tutorials welche z.B. ein Offline-Modus mit SQLite oder native Lรถsungen mit Ionics Native Storage resp. wiederum SQLite als Native Komponente beschreiben. Oft macht deren Einsatz Sinn, wenn man grosse Daten resp. Objekte (z.B. in JSON) speichern mรถchte.
Fรผr kleinere Daten funktioniert in Ionic resp. Cordova auch der HTML 5 local Storage.
HTML5 - lokaler Storage
Normalerweise kann man den HTML5 Local Storage in etwa so einsetzen:
if(typeof(Storage) !="undefined") {localStorage.setItem("vorname","Max");localStorage.setItem("nachname","Muster");alert(localStorage.getItem("vorname") +" "+localStorage.getItem("nachname"));} else {alert("Sorry, dein Browser unterstรผtzt kein Web Storage...");}
Ionic Storage
Ionic hat auch fรผrs Persistieren von einfachen Daten eine Lรถsung bereit:
API
Mit den asynchronen Methoden storage.set(..)storage.get(..) kannst du einfache Key/Value-Paare oder JSON Objekte speichern. Beachte das hier await verwendet wird und die Methode somit mit async deklariert werden muss.
import { Storage } from'@ionic/storage-angular';exportclassMyApp {constructor(private storage:Storage) { }asyncsaveNameToStorage() {// set a key/valueawaitstorage.set('name','Max'); }asyncloadAgeFromStorage() {// Or to get a key/value pairconstage=awaitstorage.get('age'); }}
@ionic/storage-angular im Projekt verwenden
Damit du @ionic/storage-angular in deinem Projekt verwenden kannst. Empfehlen sich folgende Schritt:
Installiere @ionic/storage-angular mittels NPM in deinem Projekt
npminstall@ionic/storage-angular--save
Fรผge IonicStorageModule.forRoot() unter imports im ngModule in der Datei app.module.ts hinzu. Beispiel:
Mittels Capacitors hast du die Mรถglichkeit auf native Funktionalitรคten wie Preferences zuzugreifen. Preferences sind Key-Value Stores in welchen einfache Datentypen gespeichert werden kรถnnen.
Gerade in unserem Projekt ist die Verwendung von Capacitor Preferences รคussert empfehlenswert. Um dennoch Objekte abspeichern zu kรถnnen, ist die Verwendung von JSON ratsam. Weitere Ausfรผhrung und Mรถglichkeiten, die du mit dem Capacitor-Preferences plugin findest du unter der unten angegebenen Doku.