Zum Inhalt springen

@capgo/capacitor-asset-cache

Cache CDN-Bilder und -Videos im persistenten App-Speicher und binde sie als lokale Medienquellen ein

Nur lokale Anzeigequellen

src, resolve, und bind Gib die Quelle erst zurück, wenn eine lokale Datei existiert. Dein img- oder video-Tag erhält eine lokale WebView-URL.

Persistenter nativer Speicher

Gecachte Assets liegen im persistenten Speicher der App, nicht im Plattform-Cache, den das System bei Ressourcenknappheit löschen könnte.

Unterstützung für geschützte CDNs

Übergib Header an den nativen Fetch für signierte oder authentifizierte Assets, während das Web-Element weiterhin nur die lokale Datei lädt.

Framework-freundliche Bindung

Binde die native Cache-Auflösung an reines HTML, React refs, Vue refs oder jedes Framework, das ein img- oder video-src setzen kann.

Cache CDN-Bilder und -Videos im persistenten App-Speicher und binde sie als lokale Medienquellen ein

Starte mit cancel() und die weiteren unten aufgeführten Core-Methoden.

PlattformSupportHinweise
iOSJaNative
AndroidJaNative
WebNeinAbsichern mit Capacitor.getPlatform()

Nutze Asset Cache, wenn deine App große Remote-Medien anzeigt, die auch bei Speicherplatzmangel erhalten bleiben sollen:

  • Onboarding- oder Marketing-Videos via CDN
  • Hero-Images, Galerien oder Bildsequenzen, die über Sessions hinweg wiederverwendet werden
  • geschützte Medien, die Request-Header erfordern
  • Offline-fähige Screens, bei denen ein zuvor geladenes lokales Asset ausreicht
  • Capacitor Apps, bei denen <img> und <video> sollte geschützte URLs nicht direkt abrufen
  • configure(options) legt das Standard-CDN und das Revalidierungsverhalten fest.
  • bind(element, path, options?) aktualisiert ein Bild- oder Video-Element, sobald die lokale Datei bereit ist.
  • src(path, options?) gibt einen lokalen Source-String für den Framework-State zurück.
  • resolve(path, options?) gibt die lokale Source inklusive Cache-Metadaten zurück.
  • get(options) löst eine Remote-URL in persistente native Datei-Metadaten auf.
  • remove(options) entfernt ein gecachtes Asset anhand des Keys oder der URL.
  • clear() entfernt alle vom Plugin verwalteten gecachten Assets.
  • list() gibt gecachte Assets zurück, die noch auf der Disk existieren.
  • getCacheSize() gibt die gesamten gecachten Bytes zurück.
  • getPluginVersion() gibt den Versionsmarker der nativen Implementierung zurück.

Der Cache kann pro Asset oder über Standardwerte unterschiedlich geprüft werden:

StrategieVerhalten
neverVerwende die lokale Datei, falls vorhanden.
ttlNeu herunterladen nach maxAgeSeconds.
alwaysBei jedem Aufruf revalidieren und bekannte Validatoren senden.
etagVerwende den bekannten HTTP ETag-Validator, falls vorhanden.
last-modifiedVerwende den bekannten HTTP Last-Modified-Validator, falls vorhanden.

Unter iOS werden Dateien in Application Support gespeichert, wobei der Cache-Root vom iCloud-Backup ausgeschlossen wird. Unter Android liegen die Dateien im internen Verzeichnis der App.

Der Cache ist innerhalb der App-Sandbox verborgen und nicht als öffentliches Benutzer-Medium sichtbar. Er wird gelöscht, wenn die App deinstalliert wird, der Nutzer die App-Daten löscht oder wenn deine App aufruft clear() oder remove().

Weiterlesen ab @capgo/capacitor-asset-cache

Abschnitt: „Weiterlesen ab @capgo/capacitor-asset-cache“

Wenn Sie ... verwenden @capgo/capacitor-asset-cache um das persistente Laden von Medien zu planen, verbinde es mit Erste Schritte für Details zur Implementierung, @capgo/capacitor-downloader für explizite Hintergrund-Downloads, @capgo/capacitor-file für den allgemeinen lokalen Dateizugriff und Verwendung von @capgo/capacitor-asset-cache für das Tutorial.