Update-Verhalten
Einen Einrichtungsvorschlag mit den Installationsanweisungen 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. Aber Sie möchten auch nicht, dass ihre Erfahrung durch das Zwingen, auf eine heruntergeladene Aktualisierung zu warten oder das Anwendungsprogramm während einer Sitzung neu zu starten, gestört wird.
Capgo-Aktualisierungsverhalten ist darauf ausgelegt, einen Ausgleich zwischen der schnellen Bereitstellung von Aktualisierungen und der Minimierung von Störungen für Ihre Benutzer zu finden.
Standardaktualisierungsablauf
Abschnitt mit dem Titel „Standardaktualisierungsablauf“Standardmäßig verhält sich Capgo wie folgt bei der Aktualisierung von Anwendungen:
-
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).
periodCheckDelayWenn eine Aktualisierung gefunden wird, wird sie im Hintergrund heruntergeladen, während der Benutzer weiterhin mit der aktuellen Version der Anwendung arbeitet. -
Default Update Flow
-
Nachdem der Download abgeschlossen ist, wartet Capgo auf den Zeitpunkt, an dem der Benutzer die App in den Hintergrund verschiebt.
-
Wenn der Benutzer die App das nächste Mal in den Vordergrund bringt, läuft die aktualisierte Version.
Diese Fluss sorgt dafür, dass Benutzer immer die aktuellste Version Ihrer App ausführen, ohne jemals von Update-Anfragen unterbrochen oder gezwungen zu werden, auf Downloads zu warten.
Weshalb diese Vorgehensweise?
Abschnitt mit dem Titel ‘Weshalb 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 unterbrochen oder gezwungen, auf Downloads zu warten, während sie mitten in einer Sitzung sind.
-
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 ein Benutzer, wenn er Ihre App im Hintergrund lädt und schnell wieder auf sie zurückkehrt, möglicherweise alle nicht gespeicherten Daten verliert, da das Update zwischen diesen Aktionen angewendet wurde.
Um dies zu mildern, empfehlen wir:
-
Das Speichern des Zustands häufig und das Wiederherstellen, wenn die App wieder aufgerufen wird.
-
Vermeiden Sie sehr häufige Updates, die große Teile des App-Zustands ändern.
-
Betrachten Sie die Anpassung des Update-Verhaltens für sensitive Flüsse (siehe unten).
Anpassen Sie, wann Updates angewendet werden
Abschnitt mit dem Titel "Anpassen Sie, 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 ein in Arbeit befindliches Fluss abschließt, bevor er aktualisiert wird, oder Sie möchten ein App-Update mit einem Serverseitig-Änderung abstimmen.
Capgo bietet eine Funktion, die Ihnen ermöglicht, Bedingungen festzulegen, die vor der Installation eines Updates erfüllt werden müssen: setDelay Zurücksetzen in die Zwischenablage
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 der App für mindestens 60 Sekunden aufschieben.
Die verfügbaren Wartebedingungen sind:
date: Warten Sie, bis nach einer bestimmten Uhrzeit, um die Aktualisierung anzuwenden.background: Warten Sie eine Mindestdauer nach der Hintergrundung der App, um die Aktualisierung anzuwenden.nativeVersion: Warten Sie, bis eine native Binärdatei mit einer Mindestversion installiert ist, bevor Sie die Aktualisierung anwenden.kill: Warten Sie, bis das nächste App-Tötungsereignis auftritt, um die Aktualisierung anzuwenden.
Sie können diese Bedingungen mischen und anpassen, um genau zu bestimmen, wann eine Aktualisierung installiert wird.
Aktualisierungen Sofort anwenden
Abschnitt mit dem Titel ‘Updates sofort anwenden’Für kritische Updates oder Apps mit sehr einfachem Zustand möchten Sie möglicherweise ein Update so schnell wie möglich anwenden, ohne auf einen Hintergrund- oder Beendigungsereignis zu warten. Capgo unterstützt dies über die autoUpdate Policy in Ihrer Capacitor-Konfiguration.
autoUpdate ist in Ihrem capacitor.config.ts Datei gesetzt, nicht in JavaScript code. Es unterstützt diese Werte:
falseoder'off'Alternativen zu Live-Updatestrue: Deaktivieren Sie automatische Überprüfungen'atBackground'oder'atInstall': Wenden Sie sich sofort nur nach einer frischen Installation oder einem Update aus dem App-Store an; andernfalls verwenden Sie"atBackground"Verhalten'onLaunch': Wenden Sie sich sofort nur an, wenn die App aus einem getöteten Zustand (kalte Start) in den Vordergrund gebracht wird. Nach dieser ersten Überprüfung fällt man dann auf"atBackground"Verhalten'always': Überprüfen Sie bei jeder Vordergrund-Übergabe und wenden Sie sich sofort an, wenn ein Update verfügbar ist'onlyDownload': Überprüfen Sie und laden Sie automatisch herunter, senden SieupdateAvailable, und setzen Sie niemals das nächste Bundle oder wenden Sie ein Update automatisch an
Testen Sie ein natives Build ohne Live-Updates
Abschnitt mit dem Titel “Testen Sie ein natives Build ohne Live-Updates”Siehe Testen Sie natives Builds ohne Live-Updates für die native-Version, Kanal-Politik und CI-Konfigurations-Sicherheitsvorkehrungen.
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 when using instant apply with autoSplashscreen }, },};
export default config;Mit autoUpdate: 'always', Capgo Überprüfungen auf jedem Vordergrundwechsel und sofortige Anwendung eines Updates, sobald der Download während dieser Überprüfung abgeschlossen ist, selbst wenn der Benutzer aktiv mit der App arbeitet. Periodische Überprüfungen, die durch periodCheckDelay können den gleichen sofortigen Anwendungsbetrieb auslösen, während die App geöffnet bleibt.
Hinweis, dass autoUpdate sich auf eine native Konfiguration bezieht, sodass Instant-Apply-Modi einige zusätzliche Behandlung in Ihrem JavaScript code erfordern.
um sicherzustellen, dass Sie die volle Kontrolle über den Zeitpunkt haben, an dem die Splash-Schaltfläche nach Abschluss des Update-Prozesses ausgeblendet wird.
Automatisches Herunterladen ohne AnwendungIf you want Capgo to check and download updates automatically but never apply them automatically, use autoUpdate: 'onlyDownload':
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'onlyDownload', }, },};automatisch nach und herunterlädt, aber sie nie automatisch anwendet, verwenden Sie updateAvailable Zur Zwischenablage kopieren CapacitorUpdater.set() In diesem Modus sendet der Plugin
nach dem Herunterladen eines Pakets. Ihre App kann dann entscheiden, wann sie die Methode aufruft oder ihre eigene Update-Anzeige zeigt.
Abschnitt mit dem Titel “Automatische Splashscreen-Verwaltung”Um Instant-Apply-Modi einfacher zu verwenden, bietet Capgo eine Option, die die automatische Versteckung der Splashscreen für Sie übernimmt (verfügbar seit Version 7.6.0): autoSplashscreen Zum Auswählen in die Zwischenablage
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'always', // or 'atInstall' autoSplashscreen: true, // Automatically hide splashscreen keepUrlPathAfterReload: true, }, SplashScreen: { launchAutoHide: false, }, },};ist aktiviert: autoSplashscreen Der Plugin versteckt die Splashscreen automatisch, wenn ein Update angewendet wird
- Der Plugin versteckt die Splashscreen automatisch, wenn kein Update erforderlich ist
- Sie müssen sich nicht manuell auf
- ereignisse einlassen oder
appReadymanuelle Splashscreen-VerwaltungSplashScreen.hide()
Abschnitt mit dem Titel “Manuelle Splashscreen-Verwaltung”
Abschnitt mit dem Titel “Automatische Splashscreen-Verwaltung”Wenn Sie eine manuelle Kontrolle oder eine benutzerdefinierte Logik benötigen, können Sie die autoSplashscreen und handeln Sie selbst:
import { CapacitorUpdater } from '@capgo/capacitor-updater';import { SplashScreen } from '@capacitor/splash-screen';
CapacitorUpdater.addListener('appReady', () => { // Hide splash screen SplashScreen.hide();});
CapacitorUpdater.notifyAppReady();Der appReady ereignet sich einmal, nachdem die App fertig mit der Initialisierung und der Anwendung von möglichen Updates abgeschlossen ist. Dies ist der Zeitpunkt, an dem es sicher ist, die Benutzeroberfläche der App anzuzeigen, da es sicherstellt, dass der Benutzer die neueste Version sieht.
Zusätzlich zum Handhaben des appReady empfehlen wir, die keepUrlPathAfterReload Einstellung auf true zu setzen, wenn Sie einen Instant-Apply-Modus verwenden. Dies bewahrt den aktuellen URL-Pfad, wenn die App aufgrund eines Updates neu geladen wird, und hilft dabei, die Position des Benutzers im App zu erhalten und die Orientierung zu reduzieren.
Wenn Sie das appReady nicht handhaben und keepUrlPathAfterReload auf Instant-Apply-Modus setzen, kann der Benutzer kurzfristig eine veraltete Version der App sehen, auf die Startseite zurückgeführt werden oder einen Flicker erleben, während das Update angewendet wird.
Mit einer sofortigen Anwendungsmethode kann es sich lohnen, kritische Fehlerkorrekturen oder Sicherheitspatches bereitzustellen, aber sie bringt einige Kompromisse mit sich:
- Der Benutzer kann einen kurzen Flimmern oder einen Ladezustand sehen, wenn die Aktualisierung angewendet wird, wenn Sie den Splashscreen nicht ordnungsgemäß mit
autoSplashscreenoder manuellemappReadyEvent-Handling) handhaben. - 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 Benutzer kann sich verloren fühlen, wenn
keepUrlPathAfterReloadnicht gesetzt ist, was sie verwirren könnte. - Sie müssen sorgfältig den Speicher und die Wiederherstellung des Zustands handhaben, um eine glatte Übergabe zu gewährleisten.
Wenn Sie die sofortige Anwendung aktivieren, empfehlen wir Ihnen:
- Die Verwendung von
autoSplashscreen: truezum einfachsten Setup oder die manuelle Handhabung desappReadyEvents, wenn Sie eine benutzerdefinierte Logik benötigen. - Konfiguration
keepUrlPathAfterReloadzutrueum - um den Benutzerstandort im App zu erhalten.
- Das Speichern und Wiederherstellen des App-Zustands, wenn nötig, um den Benutzerfortschritt zu vermeiden.
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.
In den meisten Fällen bietet das Standard-Updateverhalten den besten Kompromiss zwischen schneller Updateverteilung und minimalem Störungspotenzial. Für Apps mit spezifischen Anforderungen bietet __CAPGO_KEEP_0__ jedoch die Flexibilität, wann und wie Updates angewendet werden sollen.
Fortsetzen von UpdateverhaltenSektion mit dem Titel ‘Fortsetzen von Updateverhalten’ Wenn Sie Updateverhalten zur Planung der Live-Update-Verteilung verwenden, verbinden Sie es mit dem Capgo Live-Updates-System für den Produktworkflow in Capgo Live Updates Übersicht für die Implementierungsdetails in Übersicht Funktionen für die Implementierungsdetails in Funktionen Update-Typen für die Implementierungsdetails in Update-Typen und Einführung für die Implementierungsdetails in Einführung