Zum Inhalt springen

Update-Verhalten

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 eines Wartens auf ein Herunterladen oder das Neustarten der Anwendung in der Mitte einer Sitzung gestört wird.

Capgo-Aktualisierungsverhalten ist so konzipiert, dass es einen Ausgleich zwischen der schnellen Bereitstellung von Aktualisierungen und der Minimierung von Störungen für Ihre Benutzer findet.

Standardmäßig verhält sich Capgo wie folgt bei der Aktualisierung der Anwendung:

  1. 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 von periodCheckDelay (Standard 10 Minuten) gesteuerten Timer.

  2. Wenn eine Aktualisierung gefunden wird, wird sie im Hintergrund heruntergeladen, während der Benutzer weiterhin die aktuelle Version der Anwendung verwendet.

  3. Sobald der Download abgeschlossen ist, wartet Capgo auf das Hintergrunden der Anwendung durch den Benutzer.

  4. Wenn der Benutzer die Anwendung zum nächsten Mal in den Vordergrund bringt, läuft die aktualisierte Version.

Dieser Workflow stellt sicher, dass Benutzer immer die neueste 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, in der Mitte einer Sitzung.

  • Updates werden nahtlos zwischen Sitzungen angewendet, so dass die Erfahrung beim Starten der App immer frisch ist.

  • Sie können Updates häufig liefern, ohne sich um die Störung aktiver Benutzer zu kümmern.

Der Hauptnachteil ist, dass wenn ein Benutzer die App in den Hintergrund legt und schnell wieder auf sie zugreift, er möglicherweise jede nicht gespeicherte Zustand verliert, da das Update zwischen diesen Aktionen angewendet wurde.

To vermeiden, empfehlen wir:

  • Regelmäßig den Zustand speichern und ihn sanft wiederherstellen, wenn die App wieder aufgerufen wird.

  • Frequente Updates vermeiden, die große Teile des App-Zustands ändern.

  • Für sensitive Flüsse das Updateverhalten anpassen (siehe unten).

In manchen Fällen möchtest du mehr Kontrolle darüber haben, wann genau ein Update angewendet wird. Zum Beispiel möchtest du sicherstellen, dass ein Benutzer einen laufenden Flow abgeschlossen hat, bevor er aktualisiert wird, oder koordinieren, dass eine App-aktualisierung mit einer Serverseitig-Änderung zusammenfällt.

Capgo bietet eine setDelay Funktion, die es dir 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',
},
],
});

Dieser Beispiel würde das Installieren eines Updates aufschieben, bis nach dem 1. Juni 2023 und die App wurde mindestens 60 Sekunden im Hintergrund geschaltet.

Die verfügbaren Verzögerungsbedingungen sind:

  • date: Bis zu einem bestimmten Datum/Zeit warten, bevor die Aktualisierung angewendet wird.
  • background: Warten Sie eine Mindestdauer nachdem die App im Hintergrund geschlossen wurde, bevor die Aktualisierung angewendet wird.
  • nativeVersion: Warten Sie auf eine native Binärdatei mit einer Mindestversion, bevor die Aktualisierung angewendet wird.
  • kill: Warten Sie bis zum nächsten App-Tödungsereignis, bevor die Aktualisierung angewendet wird.

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

Für kritische Updates oder Apps mit sehr einfachem Zustand möchten Sie möglicherweise eine Aktualisierung anwenden, sobald sie heruntergeladen wurde, ohne auf ein Hintergrund- oder Tödungsereignis zu warten. Capgo unterstützt dies über die autoUpdate Politik in Ihrer Capacitor Konfiguration.

autoUpdate ist in Ihrem capacitor.config.ts Datei, nicht in JavaScript code. Es unterstützt diese Werte:

  • false oder 'off': Automatische Aktualisierungsprüfungen deaktivieren
  • true oder 'atBackground' (Standard): Jedes Mal auf Vordergrund-Check prüfen und herunterladen, dann die Aktualisierung bei der nächsten Hintergrund-Aktivität anwenden
  • 'atInstall': Sofort nur nach einer frischen Installation oder einer native App-Store-Aktualisierung anwenden; ansonsten verwenden Sie "atBackground" Verhalten
  • 'onLaunch': Wenden Sie sich sofort nur dann auf die Vorderseite, wenn das App aus einem getöteten Zustand (kalte Start) gebracht wird. Nach dieser ersten Überprüfung, fällt zurück zu "atBackground" : Überprüfen Sie bei jeder Vordergrund-Übergang und wenden Sie sich sofort an, wenn eine Aktualisierung verfügbar ist
  • 'always': Überprüfen und herunterladen Sie automatisch, senden Sie
  • 'onlyDownload', und setzen Sie nie die nächste Paket oder wenden Sie eine Aktualisierung automatisch an updateAvailableTesten Sie ein natives Build ohne Live-Updates

Sektion mit dem Titel “Testen Sie ein natives Build ohne Live-Updates”

Siehe

Testen Sie natives Builds ohne Live-Updates weitere Informationen zum native-Version, Kanal-Politik und CI-Konfigurationssicherheiten. Zur Zwischenablage kopieren

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 Vordergrund-Wechsel 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 gesteuert werden, können das gleiche sofortige Anwendungsbahavior auslösen, während die App geöffnet bleibt.

Hinweis, dass weil autoUpdate eine native Konfiguration ist, Instant-Apply-Modi einige zusätzliche Behandlung in Ihrem JavaScript code erfordern.

Wenn Sie möchten, dass Capgo Updates automatisch überprüft und herunterlädt, aber sie nie automatisch anwendet, verwenden Sie autoUpdate: 'onlyDownload':

const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
autoUpdate: 'onlyDownload',
},
},
};

nach dem Download eines Bundles. Ihre App kann dann entscheiden, wann sie updateAvailable oder ihr eigenes Update-Fenster zeigt. CapacitorUpdater.set() Automatisches SplashScreen-Handling

Abschnitt mit dem Titel “Automatisches SplashScreen-Handling”

Um Instant-Apply-Modi einfacher zu verwenden, bietet __CAPGO_KEEP_0__

To make instant apply modes easier to use, Capgo provides an autoSplashscreen Option, die automatisch die Versteckung des Splashscreens für Sie handhabt (verfügbar seit Version 7.6.0):

const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
autoUpdate: 'always', // or 'atInstall'
autoSplashscreen: true, // Automatically hide splashscreen
keepUrlPathAfterReload: true,
},
SplashScreen: {
launchAutoHide: false,
},
},
};

Wenn autoSplashscreen aktiviert ist:

  • Der Plugin versteckt den Splashscreen automatisch, wenn ein Update angewendet wird
  • Der Plugin versteckt den Splashscreen automatisch, wenn kein Update erforderlich ist
  • Sie müssen sich nicht manuell auf appReady - oder SplashScreen.hide()

Abschnitt mit dem Titel “Manuelle Splashscreen-Verwaltung” autoSplashscreen Wenn Sie eine manuelle Kontrolle bevorzugen oder eine benutzerdefinierte Logik benötigen, können Sie sie deaktivieren und selbst handhaben:

import { CapacitorUpdater } from '@capgo/capacitor-updater';
import { SplashScreen } from '@capacitor/splash-screen';
CapacitorUpdater.addListener('appReady', () => {
// Hide splash screen
SplashScreen.hide();
});
CapacitorUpdater.notifyAppReady();

Die appReady Das Ereignis wird einmal ausgelöst, wenn die App fertig ist, sich zu initialisieren und alle anstehenden Updates anzuwenden. 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 Umgang mit dem appReady Ereignis empfehlen wir, die keepUrlPathAfterReload Konfigurationsoption 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, hilft dabei, die Position des Benutzers im App zu erhalten und reduziert die Orientierungslosigkeit.

Wenn Sie das appReady Ereignis nicht behandeln und die keepUrlPathAfterReload Konfigurationsoption nicht auf

setzen, wenn Sie einen Instant-Apply-Modus verwenden, kann der Benutzer kurzfristig eine veraltete Version der App sehen, auf die ursprüngliche Route zurückgeführt werden oder einen Flicker sehen, während das Update angewendet wird.

  • Der Instant-Apply-Modus kann nützlich sein, um kritische Fehler oder Sicherheitspatches bereitzustellen, aber er kommt mit einigen Kompromissen: Der Benutzer kann einen kurzen Flicker oder einen Ladezustand sehen, während das Update angewendet wird, wenn Sie das Splashscreen nicht ordnungsgemäß behandeln (entweder mit autoSplashscreen oder manuell appReady Zuhandlung von Ereignissen).
  • Wenn die Aktualisierung den Zustand der App oder die Benutzeroberfläche ändert, kann der Benutzer einen störenden Wechsel während einer Sitzung sehen.
  • Der Benutzerstandort in der App kann verloren gehen, wenn keepUrlPathAfterReload nicht festgelegt ist, was sie möglicherweise verwirren könnte.
  • Sie müssen sorgfältig darauf achten, den Zustand zu speichern und wiederherzustellen, um eine glatte Übergabe zu gewährleisten.

Wenn Sie Instant Apply aktivieren, empfehlen wir Ihnen:

  • Verwendung von autoSplashscreen: true für die einfachste Konfiguration oder manuelles Handhaben des appReady Ereignisses, wenn Sie eine benutzerdefinierte Logik benötigen.
  • Einstellung von keepUrlPathAfterReload zu true Die Standortinformationen des Benutzers im App zu speichern.
  • Die App-Zustände zu speichern und wiederherzustellen, wenn nötig, um Benutzerfortschritte zu vermeiden.
  • Ihrer App-Updateverhalten gründlich zu testen, um sicherzustellen, dass es keine jarring Übergänge, verlorene Zustände oder verwirrende Standortänderungen gibt.

In den meisten Fällen bietet das Standard-Updateverhalten den besten Kompromiss zwischen schnellem Update-Delivery und minimalem Störungspotenzial. Aber für Apps mit spezifischen Anforderungen bietet Capgo die Flexibilität, Updates anzuwenden, wenn und wie nötig.

Weitergehen von Updateverhalten

Überschrift: Weitergehen von Updateverhalten

Wenn Sie " Updateverhalten " zum Planen der Live-Update-Delivery verwenden, verbinden Sie es mit " Capgo Live Updates" for the product workflow in Capgo Live Updates, __CAPGO_KEEP_0__ Live Updates", " für die Implementierungsdetails in Übersicht Funktionen für die Implementierungsdetails in Funktionen Update-Typen für die Implementierungsdetails in Update-Typen und Einstieg für die Implementierungsdetails in Einstieg.