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 Liefert eine 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 app-eigenen persistenten Speicher, nicht im Plattform-Cache-Ordner, den das System bei Platzmangel 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 einfaches HTML, React refs, Vue refs oder jedes Framework, das ein img- oder video-src zuweisen kann.

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

Starte mit cancel() und den anderen unten aufgeführten Core-Methoden.

PlattformSupportNotizen
iOSJaNative
AndroidJaNative
WebNeinAbsichern mit Capacitor.getPlatform()

Nutzen Sie Asset Cache, wenn Ihre App schweres Remote-Medienmaterial anzeigt, das normalen Speicherdruck überstehen soll:

  • Onboarding- oder Marketing-Videos, die von einem CDN ausgeliefert werden
  • Hero-Bilder, Galerien oder Bildsequenzen, die über mehrere Sessions hinweg wiederverwendet werden
  • geschütztes Medienmaterial, das Request-Header erfordert
  • offline-tolerante Screens, bei denen ein zuvor abgerufenes lokales Asset ausreicht
  • Capacitor-Apps, in denen <img> und <video> geschützte URLs nicht direkt abgerufen werden sollen
  • configure(options) Legt das Standard-CDN und das Revalidierungsverhalten fest.
  • bind(element, path, options?) Aktualisiert ein Bild- oder Videoelement, wenn die lokale Datei bereit ist.
  • src(path, options?) Gibt eine lokale Quellzeichenkette für den Framework-Zustand zurück.
  • resolve(path, options?) Gibt die lokale Quelle plus Cache-Metadaten zurück.
  • get(options) Löst eine Remote-URL in persistente native Dateimetadaten auf.
  • remove(options) Entfernt ein einzelnes gecachtes Asset per Key oder URL.
  • clear() Entfernt alle vom Plugin verwalteten gecachten Assets.
  • list() returns cached assets that still exist on disk.
  • getCacheSize() gibt die insgesamt 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.
ttlErneut 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 ist. Unter Android werden die Dateien im internen Dateiverzeichnis der App gespeichert.

Der Cache ist in der App-Sandbox verborgen und nicht als öffentliche Benutzermedien sichtbar. Er wird entfernt, wenn die App deinstalliert wird, wenn der Nutzer die App-Daten löscht oder wenn deine App aufruft clear() oder remove().

Wenn du es nutzt @capgo/capacitor-asset-cache um persistentes Laden von Medien zu planen, verbinde es mit Erste Schritte für Implementierungsdetails, @capgo/capacitor-downloader für explizite Background-Downloads, @capgo/capacitor-file für den allgemeinen lokalen Dateizugriff und @capgo/capacitor-asset-cache verwenden für das Tutorial.