Aktualisierungsverhalten
Eine Setup-Anleitung mit den Installations-Schritten und der vollständigen Markdown-Anleitung für diesen Plugin kopieren.
Wenn Sie eine Aktualisierung für Ihre Capgo-Anwendung freigeben, möchten Sie wahrscheinlich, dass Ihre Benutzer diese Aktualisierung so schnell wie möglich erhalten. Sie möchten jedoch auch nicht, dass ihre Erfahrung durch das Zwingen eines Wartens auf eine Herunterladung oder das Neustarten der Anwendung in der Mitte einer Sitzung gestört wird.
Capgos Updateverhalten zielt darauf ab, Updates schnell bereitzustellen und gleichzeitig Störungen für die Benutzer zu minimieren.
Standardaktualisierungsablauf
StandardaktualisierungsablaufStandardmäßig verhält sich Capgo wie folgt bei der Anwendung von Updates:
-
Wenn die Anwendung in den Vordergrund bewegt wird, überprüft das Capgo-Plugin, ob eine neue Aktualisierung verfügbar ist. Während die Anwendung geöffnet bleibt, überprüft es auch wiederholt auf einem durch Capgo kontrollierten Timer (Standard 10 Minuten).
periodCheckDelay(Standard 10 Minuten). -
Wenn eine Aktualisierung gefunden wird, wird sie im Hintergrund heruntergeladen, während der Benutzer weiterhin die aktuelle Version der Anwendung verwendet.
-
Nachdem der Download abgeschlossen ist, wartet Capgo auf das Hintergrundieren der App durch den Benutzer.
-
Wenn der Benutzer die Anwendung zum nächsten Mal in den Vordergrund bringt, läuft die aktualisierte Version.
Dieser Ablauf stellt sicher, dass Benutzer immer die neueste Version Ihrer Anwendung laufen lassen, ohne dass sie durch Aktualisierungsanfragen oder Warten auf Herunterladungen gestört werden.
Wozu dient diese Vorgehensweise?
Warum diese Vorgehensweise?Die Anwendung von Updates bei einem Hintergrund- oder Beendigungsereignis hat einige wichtige Vorteile für die Benutzererfahrung:
-
Benutzer werden nicht durch Update-Anfragen oder durch Zwischenladevorgänge während einer Sitzung unterbrochen.
-
Updates werden nahtlos zwischen den Sitzungen angewendet, sodass die Erfahrung beim Starten der App immer frisch ist.
-
Sie können Updates häufig liefern, ohne sich um Störungen bei aktiven Benutzern zu kümmern.
Der Hauptnachteil ist, dass Benutzer, die die App in den Hintergrund bewegen und sie schnell wieder öffnen, möglicherweise alle nicht gespeicherten Daten verlieren, da das Update zwischen diesen Aktionen angewendet wurde.
Um dies zu mildern, empfehlen wir:
-
Häufiges Speichern des Zustands und rücksichtsvolle Wiederherstellung, wenn die App wieder aufgenommen wird.
-
Vermeiden Sie sehr häufige Updates, die große Teile des Anwendungsstatus ändern.
-
Berücksichtigen Sie die Anpassung des Updateverhaltens für sensitive Flüsse (siehe unten).
Anpassen, wann Updates angewendet werden.
Sektion mit dem Titel “Anpassen, wann Updates angewendet werden”.In manchen Fällen möchten Sie möglicherweise mehr Kontrolle darüber haben, wann genau ein Update angewendet wird. Zum Beispiel möchten Sie sicherstellen, dass ein Benutzer einen in Fortschritt befindlichen Fluss abschließt, bevor er aktualisiert wird, oder Sie möchten ein App-Update mit einem serverseitigen Änderung abstimmen.
Capgo bietet eine setDelay Funktion, die es Ihnen ermöglicht, Bedingungen festzulegen, die vor der Installation eines Updates erfüllt sein müssen:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setMultiDelay({ delayConditions: [ { kind: 'date', value: '2023-06-01T00:00:00.000Z', }, { kind: 'background', value: '60000', }, ],});Dieses Beispiel würde die Installation einer Aktualisierung bis nach dem 1. Juni 2023 und die Hintergrundung des Apps für mindestens 60 Sekunden aufschieben.
Die verfügbaren Wartebedingungen sind:
dateWarten Sie bis nach einem bestimmten Datum/Zeit, um die Aktualisierung anzuwenden.background: Wait a minimum duration after the app is backgrounded to apply the update.nativeVersion: Warten Sie auf eine native Binärdatei mit einer Mindestversion, bevor Sie die Aktualisierung anwenden.kill: Warten Sie, bis zum nächsten App-Tötungsereignis, um die Aktualisierung anzuwenden.
Sie können diese Bedingungen mischen und anpassen, um genau zu kontrollieren, wann eine Aktualisierung installiert wird.
Updates sofort anwenden
Abschnitt mit dem Titel “Updates sofort anwenden”Für kritische Updates oder Apps mit sehr einfachem Zustand möchten Sie möglicherweise eine Aktualisierung anwenden, sobald sie heruntergeladen ist, ohne auf ein Hintergrund- oder Tötungsereignis zu warten. Capgo unterstützt dies über die autoUpdate Politik in Ihrer Capacitor-Konfiguration.
autoUpdate ist in Ihrem capacitor.config.ts Datei gesetzt, nicht in JavaScript code. Es unterstützt diese Werte:
falseoder'off'Die __CAPGO_KEEP_0__-Konfiguration ist in Ihremtrueoder'atBackground'(default): Automatisch überprüfen und herunterladen, sobald die App im Vordergrund ist, und die Aktualisierung dann anwenden, wenn die App in den Hintergrund wechselt.'atInstall': Sofort anwenden nur nach einer frischen Installation oder einem Update aus dem App-Store; andernfalls verwenden"atBackground"behavior'onLaunch'Wenn die App aus einem beendetem Zustand (cold start) in den Vordergrund gebracht wird, wird die Anwendung sofort angewendet. Anschließend fällt man zurück auf"atBackground"behavior'always'Überprüfen Sie bei jeder Vordergrundübergabe und wenden Sie die Änderungen sofort an, sobald ein Update verfügbar ist.'onlyDownload'Automatisch überprüfen und herunterladen, ausgebenupdateAvailable, und stelle das nächste Bundle oder einen Update automatisch nicht ein.
Ein Native Build ohne Live Updates testen
Ein Abschnitt mit dem Titel “Ein Native Build ohne Live Updates testen”See Test Native Builds ohne Live Updates für die native-Version, Kanalrichtlinien und CI-Konfigurationssicherheiten
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'always', // or 'atInstall' for updates only on app install/update autoSplashscreen: true, keepUrlPathAfterReload: true, }, SplashScreen: { launchAutoHide: false, // Required for instant apply with autoSplashscreen }, },};
export default config;With autoUpdate: 'always', Capgo checks on every foreground transition and immediately applies an update as soon as the download completes during that check, even if the user is actively using the app. Periodic checks controlled by periodCheckDelay Kann das gleiche sofortige Anwenden des Updates auslösen, während die App geöffnet bleibt.
Beachten Sie, dass autoUpdate ein native Konfiguration, Instant-Apply-Modi erfordern einige zusätzliche Verarbeitung in Ihrem JavaScript code.
Automatisches Herunterladen ohne Anwendung
Abschnitt mit dem Titel ‘Automatisches Herunterladen ohne Anwendung’Wenn Sie möchten, dass Capgo automatisch Updates überprüft und herunterlädt, aber sie nie automatisch anwendet, verwenden Sie autoUpdate: 'onlyDownload':
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'onlyDownload', }, },};In diesem Modus sendet das Plugin updateAvailable nachdem ein Bundle heruntergeladen wurde. Ihre App kann dann entscheiden, wann sie CapacitorUpdater.set() oder ihr eigenes Update-Fenster zeigt.
Automatische Splashscreen-Verwaltung
Abschnitt: Automatische Splashscreen-VerwaltungInstant-Apply-Modi ("atInstall", "onLaunch", "always") erfordern autoSplashscreen und @capacitor/splash-screen (verfügbar seit Version 7.6.0). Installieren Sie das Plugin, dann lassen Sie die Splash-Sichtbarkeit bis Capgo sie versteckt:
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'always', // or 'atInstall' autoSplashscreen: true, // Automatically hide splashscreen keepUrlPathAfterReload: true, }, SplashScreen: { launchAutoHide: false, }, },};Wenn autoSplashscreen aktiviert ist:
- Das Plugin versteckt die Splash-Screen automatisch, wenn eine Aktualisierung angewendet wird
- Das Plugin versteckt die Splash-Screen automatisch, wenn keine Aktualisierung erforderlich ist
- Sie müssen sich nicht manuell auf das Ereignis
appReadyEreignisse oder AufrufeSplashScreen.hide()
Zusätzliche Arbeit nach dem Splash versteckt
Sektion mit dem Titel „Zusätzliche Arbeit nach dem Splash versteckt“Halten autoSplashscreen: true. Wenn Sie zusätzliche Logik benötigen, nachdem die Aktualisierung bereit ist, hören Sie auf appReady ebenfalls. Verpassen Sie nicht die Splash-Plugin oder autoSplashscreen für dieses:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
CapacitorUpdater.addListener('appReady', () => { // Update is applied. autoSplashscreen already hid the splash.});
CapacitorUpdater.notifyAppReady();Die appReady Das Ereignis wird ausgelöst, sobald die App fertig initialisiert und alle anstehenden Updates angewendet hat.
Setzen keepUrlPathAfterReload context true Wenn Sie eine sofortige Anwendung verwenden. Dies bewahrt den aktuellen URL-Pfad bei einem Neustart des Apps aufgrund einer Aktualisierung.
Die Verwendung einer sofortigen Anwendung kann nützlich sein, um kritische Fehler oder Sicherheitspatches bereitzustellen, aber sie bringt einige Kompromisse mit sich:
- Der Benutzer kann einen kurzen Flimmern oder eine Ladezustand sehen, wenn die Aktualisierung angewendet wird, wenn
@capacitor/splash-screenfehlt oderautoSplashscreennicht aktiviert ist. - Wenn die Aktualisierung den App-Zustand oder die Benutzeroberfläche ändert, kann der Benutzer einen störenden Wechsel in der Mitte einer Sitzung sehen.
- Der Benutzerstandort in der App kann verloren gehen, wenn
keepUrlPathAfterReloadnicht gesetzt ist, was sie möglicherweise verwirrt. - Sie müssen sorgfältig darauf achten, den Zustand zu speichern und wiederherzustellen, um eine glatte Übergabe zu gewährleisten.
Wenn Sie die sofortige Anwendung aktivieren, empfehlen wir:
- Mit der Hochladen mit
npx @capgo/cli@latest bundle upload --deltaso dass der Download den Benutzererlebnis nicht verzögert. - Installieren
@capacitor/splash-screenund konfigurierenautoSplashscreen: truemitlaunchAutoHide: false. - Einstellung
keepUrlPathAfterReloadumtrueum die Position des Benutzers im App zu erhalten. - Sparen und wiederherstellen Sie den Anwendungsstatus, wie erforderlich, um Benutzerfortschritte zu vermeiden.
- Sorgfältige Überprüfung Ihres Apps-Update-Verhaltens, um sicherzustellen, dass es keine jarring Übergänge, verlorene Zustände oder verwirrende Standortänderungen gibt.
In most cases, the default update behavior provides the best balance of delivering updates quickly and minimizing disruption. But for apps with specific needs, Capgo provides the flexibility to customize when and how updates are applied.
Weiter mit der Update-Verhaltensweise
Abschnitt mit dem Titel “Weiterhin aus dem Updateverhalten”Abschnitt mit dem Titel „Fortsetzen von Update-Verhalten“ Updateverhalten um live update Lieferung zu planen, verbinden Sie es mit Capgo Live Updates für den Produktworkflow in Capgo Live Updates, Overview für die Implementierungsdetail in Überblick, Übersicht für die Implementierungsdetails in Features, Funktionen für die Implementierungsdetails in Update-Typen Updatearten, und für die Implementierungsdetails im Getting Started.