Update-Verhalten
Kopieren Sie einen Einrichtungsvorschlag mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin.
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 Zwangserzwingen eines Download oder das Neustarten der Anwendung in der Mitte einer Sitzung 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 Wiederholungstimer (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. -
Source guide
-
Nachdem die Herunterladung 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 stellt sicher, dass Benutzer immer die neueste Version Ihrer App ausführen, ohne jemals durch Update-Anfragen unterbrochen oder zum Warten auf Downloads gezwungen zu werden.
Weshalb diese Vorgehensweise?
Abschnitt mit dem Titel ‘Weshalb diese Vorgehensweise?’Die Anwendung von Updates bei einem Hintergrund- oder Beendigungsevent hat einige wichtige Vorteile für die Benutzererfahrung:
-
Benutzer werden nicht durch Update-Anfragen unterbrochen oder gezwungen, während einer Sitzung zu warten.
-
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 die Unterbrechung aktiver Benutzer zu kümmern.
Der Hauptnachteil ist, dass ein Benutzer, wenn er die Anwendung im Hintergrund legt und schnell wieder öffnet, möglicherweise alle nicht gespeicherten Daten verliert, da das Update zwischen diesen Aktionen angewendet wurde.
Um dies zu mildern, empfehlen wir:
-
Den Zustand häufig zu speichern und ihn sanft wiederherzustellen, wenn die Anwendung wieder aufgerufen wird.
-
Sehr häufige Updates zu vermeiden, die große Teile des Anwendungs-Zustands ändern.
-
Sich bei sensiblen Flüssen (siehe unten) um die Anpassung des Update-Verhaltens zu kümmern.
Update-Verhalten anpassen
Abschnitt mit dem Titel "Update-Verhalten anpassen"In manchen Fällen möchten Sie möglicherweise mehr Kontrolle darüber haben, wann ein Update angewendet wird. Zum Beispiel möchten Sie sicherstellen, dass ein Benutzer einen laufenden Flow abschließt, bevor er aktualisiert wird, oder Sie möchten ein Update mit einem Serverseitig-Änderung abstimmen.
Capgo bietet eine Funktion, die es Ihnen ermöglicht, Bedingungen festzulegen, die vor der Installation eines Updates erfüllt sein müssen: setDelay Zwischenablage kopieren
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 Verzögerungsbedingungen 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'contexttrueAlternativen: Sie können auch'atBackground'Automatische Update-Überprüfungen deaktivieren'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 (kalter 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 und herunterladen Sie automatisch, 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-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 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 während die App geöffnet bleibt den gleichen sofortigen Anwendungsbetrieb auslösen.
Hinweis, dass autoUpdate als native Konfiguration ist, 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 AnwendenIf you want Capgo to check and download updates automatically but never apply them automatically, use autoUpdate: 'onlyDownload':
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'onlyDownload', }, },};Zur Zwischenablage kopieren updateAvailable In diesem Modus sendet das Plugin CapacitorUpdater.set() nach dem Herunterladen eines Bundles. Ihre App kann dann entscheiden, wann sie
oder ihren eigenen Update-Benachrichtigungsdialog anzeigen soll.
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 Aktualisierung deaktivieren autoSplashscreen und es selbst handhaben:
import { CapacitorUpdater } from '@capgo/capacitor-updater';import { SplashScreen } from '@capacitor/splash-screen';
CapacitorUpdater.addListener('appReady', () => { // Hide splash screen SplashScreen.hide();});
CapacitorUpdater.notifyAppReady();Der appReady Das Ereignis wird einmal ausgelöst, wenn die App fertig mit der Initialisierung und der Anwendung von möglichen Updates 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 Ereignisses empfehlen wir, die Konfigurationsoption auf appReady zu setzen, wenn Sie einen sofortigen Anwendungsmodus verwenden. Dies bewahrt den aktuellen URL-Pfad, wenn die App aufgrund einer Aktualisierung neu geladen wird, und hilft dabei, die Position des Benutzers im App zu erhalten und die Orientierung zu reduzieren. keepUrlPathAfterReload Wenn Sie das Ereignis nicht handhaben und true auf
setzen, wenn Sie einen sofortigen Anwendungsmodus verwenden, kann der Benutzer kurzfristig eine veraltete Version der App sehen, auf die Startseite zurückgekehrt werden oder einen Flicker während der Anwendung der Aktualisierung sehen. appReady event and set keepUrlPathAfterReload when using an instant apply mode, the user may briefly see a stale version of the app, be taken back to the initial route, or see a flicker as the update is applied.
Mit einer sofortigen Anwendungsmethode können kritische Fehlerkorrekturen oder Sicherheitspatches effizient übermittelt werden, aber sie gehen mit einigen Kompromissen einher:
- Der Benutzer kann einen kurzen Flimmern oder eine 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 Benutzersitz im App kann verloren gehen, 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:
- Die Verwendung von
autoSplashscreen: truezur einfachsten Einrichtung 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 der schnellen Bereitstellung von Updates und der Minimierung von Störungen. Aber für Apps mit spezifischen Bedürfnissen bietet __CAPGO_KEEP_0__ die Flexibilität, zu bestimmen, wann und wie Updates angewendet werden.
Fortsetzen von UpdateverhaltenSektion mit dem Titel ‘Fortsetzen von Updateverhalten’ Wenn Sie ‘Updateverhalten’ verwenden, um die Live-Update-Übermittlung zu planen, verbinden Sie es mit ‘__CAPGO_KEEP_0__ Live Updates’ Updateverhalten Capgo Live Updates 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