Zum Inhalt springen

Update-Behavior

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.

Standardmäßig verhält sich Capgo wie folgt, wenn es sich um Aktualisierungen handelt:

  1. Wenn das Anwendungsprogramm in den Vordergrund bewegt wird, überprüft das Capgo-Plugin, ob eine neue Aktualisierung verfügbar ist. Während das Anwendungsprogramm geöffnet bleibt, überprüft es auch wiederholt auf einem durch Capgo kontrollierten Timer (Standard 10 Minuten). periodCheckDelay Wenn eine Aktualisierung gefunden wird, wird sie im Hintergrund heruntergeladen, während der Benutzer mit der aktuellen Version des Anwendungsprogramms fortfährt.

  2. Default Update Flow

  3. Nachdem der Download abgeschlossen ist, wartet Capgo auf den Zeitpunkt, an dem der Benutzer die App in den Hintergrund verschiebt.

  4. Wenn der Benutzer die App das nächste Mal in den Vordergrund bringt, läuft die aktualisierte Version.

Dieser Workflow stellt sicher, dass Benutzer immer die aktuellste Version Ihrer App ausführen, ohne jemals durch Update-Anfragen unterbrochen oder gezwungen zu werden, auf Downloads zu warten.

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, auf Downloads zu warten, während sie in einer Sitzung sind.

  • Updates werden nahtlos zwischen 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 die Anwendung im Hintergrund legt und sie 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.

  • Vorbeikommende sehr häufige Updates, die große Teile des Anwendungs-Zustands ändern.

  • Sich bei sensiblen Flüssen (siehe unten) anpassendes Update-Verhalten anzupassen.

In manchen Fällen möchten Sie möglicherweise mehr Kontrolle darüber, wann genau 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 Auf die 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 Datum/Uhrzeit, um die Aktualisierung anzuwenden.
  • background: Warten Sie nach der Hintergrundung der App für eine Mindestdauer, 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 zum nächsten App-Tötungsereignis, um die Aktualisierung anzuwenden.

Sie können diese Bedingungen mischen und anpassen, um genau zu bestimmen, wann eine Aktualisierung installiert wird.

Für kritische Updates oder Apps mit sehr einfacher Zustandsanzeige 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 festgelegt, nicht in JavaScript code. Es unterstützt diese Werte:

  • false oder 'off'Alternativen:
  • true Deaktivieren Sie automatische Überprüfungen 'atBackground' oder
  • 'atInstall': Sofort anwenden nur nach einer frischen Installation oder einer Update-Installation aus dem App-Store; andernfalls verwenden "atBackground" Verhalten
  • 'onLaunch': Sofort anwenden, wenn die App aus einem getöteten Zustand (kalte Start) in den Vordergrund gebracht wird. Nach dieser ersten Überprüfung fällt man dann zurück auf "atBackground" Verhalten
  • 'always': Überprüfen Sie bei jeder Vordergrund-Überleitung und wenden Sie die Änderungen sofort an, wenn ein Update verfügbar ist
  • 'onlyDownload': Überprüfen und automatisch herunterladen, emit updateAvailable, und stellen Sie nie das nächste Bundle oder wenden Sie eine Update automatisch an

Siehe Testen Sie native 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;

steuert diese Intervalle (Standard 10 Minuten). 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 , __CAPGO_KEEP_0__ prüft auf jeder Vordergrund-Übergabe und aktualisiert die App sofort, sobald der Download abgeschlossen ist, selbst wenn der Benutzer aktiv mit der App arbeitet. Periodische Überprüfungen, die durch

gesteuert werden, können das gleiche sofortige Anwenden verursachen, solange die App geöffnet bleibt. autoUpdate is a native configuration, instant apply modes require some additional handling in your JavaScript code.

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 der Plugin updateAvailable nach dem Herunterladen eines Bundles. Ihre App kann dann entscheiden, wann sie CapacitorUpdater.set() oder eine eigene Update-Anzeige zeigt.

Automatische Splash-Schaltflächenvorhandlung

Abschnitt mit dem Titel “Automatische Splashscreen-Verwaltung”

Um Instant-Apply-Modi einfacher zu bedienen, 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 nicht manuell auf
  • ereignisse lauschen oder appReady aufrufen SplashScreen.hide()

Wenn Sie eine manuelle Kontrolle oder eine benutzerdefinierte Logik benötigen, können Sie dies 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 ausgelöst, sobald die App ihre Initialisierung und die Anwendung von möglichen Updates abgeschlossen hat. Dies ist der Zeitpunkt, an dem es sicher ist, die Benutzeroberfläche Ihrer 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 Instant-Apply-Modus verwenden. Dies bewahrt die aktuelle 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. keepUrlPathAfterReload Wenn Sie das Ereignis nicht handhaben und true auf Instant-Apply-Modus setzen, wenn Sie einen Instant-Apply-Modus verwenden, kann der Benutzer kurzfristig eine veraltete Version der App sehen, auf die Startroute zurückgeführt werden oder einen Flicker während der Anwendung eines Updates sehen.

__CAPGO_KEEP_0__ appReady __CAPGO_KEEP_0__ keepUrlPathAfterReload __CAPGO_KEEP_0__

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äß handhaben (entweder mit autoSplashscreen oder manuellem appReady Event-Handling).
  • Wenn die Aktualisierung den App-Zustand oder die Benutzeroberfläche ändert, kann der Benutzer einen störenden Wechsel in der Mitte einer Sitzung sehen.
  • Wenn keepUrlPathAfterReload nicht gesetzt ist, kann der Benutzerort im App verloren gehen, was ihn verwirren könnte.
  • Sie müssen sorgfältig den Zustand speichern und wiederherstellen, um eine glatte Übergabe zu gewährleisten.

Wenn Sie die sofortige Anwendungsmethode aktivieren, empfehlen wir:

  • Die Verwendung von autoSplashscreen: true zum einfachsten Setup oder das manuelle Handhaben des appReady Events, wenn Sie eine benutzerdefinierte Logik benötigen.
  • Konfiguration keepUrlPathAfterReload zu true um
  • um den Benutzerstandort im App zu erhalten.
  • Das Speichern und Wiederherstellen des App-Zustands, wenn nötig, um Benutzerfortschritte 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 schnellem Update-Delivery und minimalem Störpotential. 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 Updateverhalten

Sektion mit dem Titel ‘Fortsetzen von Updateverhalten’ Wenn Sie Updateverhalten zum Planen der Live-Update-Delivery 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