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, auf eine heruntergeladene Aktualisierung zu warten oder das Anwendungsprogramm während einer Sitzung neu zu starten, gestört wird.

Capgo-Aktualisierungsverhalten

Abschnitt mit dem Titel „__CAPGO_KEEP_0__-Aktualisierungsverhalten“

Standardmäßig verhält sich __CAPGO_KEEP_0__ bei Anwendungsaktualisierungen wie folgt:

Bei der Anwendungsstart prüft das Capgo-Plugin, ob eine neue Aktualisierung verfügbar ist.

  1. On app launch, the Capgo plugin checks to see if a new update is available.

  2. Standardaktualisierungsablauf

  3. Nachdem der Download abgeschlossen ist, wartet Capgo darauf, dass der Benutzer entweder den App in den Hintergrund schickt oder ihn vollständig beendet.

  4. Wenn der Benutzer das nächste Mal die App startet, läuft er die aktualisierte Version.

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

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 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 die Unterbrechung aktiver Benutzer zu kümmern.

Der Hauptnachteil ist, dass ein Benutzer, wenn er die Anwendung in den Hintergrund legt und sie schnell wieder startet, möglicherweise alle nicht gespeicherten Zustände verliert, da die Aktualisierung zwischen diesen Aktionen angewendet wurde.

Um dies zu mildern, empfehlen wir:

  • Den Zustand häufig zu speichern und ihn geschickt wiederherzustellen, wenn die Anwendung wieder aufgerufen wird.

  • Frequenten Updates zu vermeiden, die große Teile des Anwendungs-Zustands ändern.

  • Sensiblen Flüssen (siehe unten) individuell anzupassen.

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 in vollem Gange befindlichen Flow beendet, bevor die Anwendung aktualisiert wird, oder koordinieren, dass eine Anwendungsaktualisierung 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 bis nach dem 1. Juni 2023 und bis der Benutzer die Anwendung mindestens 60 Sekunden im Hintergrund gelassen hat, verzögern.

Die verfügbaren Wartebedingungen sind:

  • date: Warten Sie, bis nach einem bestimmten Datum/Zeitpunkt, um die Aktualisierung anzuwenden.
  • background: Warten Sie eine Mindestdauer nachdem die App im Hintergrund geschaltet wurde, um die Aktualisierung anzuwenden.
  • nativeVersion: Warten Sie, bis eine native Binärdatei mit einer Mindestversion installiert ist, bevor die Aktualisierung angewendet wird.
  • kill: Warten Sie, bis das nächste App-Töten-Ereignis, um die Aktualisierung anzuwenden.

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

Wenn Sie kritische Updates oder Apps mit sehr einfachem Zustand haben, 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 wird in Ihrem capacitor.config.ts Datei, nicht in JavaScript code. Es unterstützt diese Werte:

  • false oder 'off': Auto-Update deaktivieren
  • true oder 'atBackground' (Standard): Automatisch herunterladen und anwenden, wenn die App in den Hintergrund verschoben wird
  • 'atInstall': Sofort anwenden, nur nach einer frischen Installation oder einem Update des nativen Apps, ansonsten Hintergrund-Flow verwenden
  • 'onLaunch': Sofort an der App-Start anwenden, andernfalls den Hintergrund-Flow nach der Startprüfung verwenden
  • 'always': Sofort anwenden, sobald Auto-Update läuft
  • 'onlyDownload': Automatisch herunterladen, emitieren und nie den nächsten Bundle automatisch setzen updateAvailableZur 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;

, __CAPGO_KEEP_0__ wird ein Update sofort angewendet, sobald der Download während einer Update-Überprüfung abgeschlossen ist, selbst wenn der Benutzer aktiv mit der App arbeitet. Ohne periodische Überprüfung aktiviert, bedeutet dies, dass Updates nur angewendet werden, wenn die App startet oder aus dem Hintergrund wiederaufgenommen wird. autoUpdate: 'always', Capgo will immediately apply an update as soon as the download completes during an update check, even if the user is actively using the app. Without periodic checking enabled, this means updates will only be applied when the app starts or resumes from background.

Hinweis, dass aufgrund autoUpdate eine native Konfiguration ist, erfordert Instant-Apply-Modi einige zusätzliche Verarbeitung in Ihrem 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 das Plugin updateAvailable nachdem ein Bundle heruntergeladen wurde. Ihre App kann dann entscheiden, wann sie den Update-Befehl ausführt. CapacitorUpdater.set() oder ihr eigenes Update-Fenster anzeigt.

Um Instant-Apply-Modi einfacher zu bedienen, bietet Capgo eine Option, die automatisch die 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,
},
},
};

aktiv ist: 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 die Anwendung von Updates einlassen.
  • Sie müssen sich nicht manuell auf die Anwendung von Updates einlassen. appReady Ereignisse aufrufen oder Anruf SplashScreen.hide()

Manuelles Splashscreen-Handling

Abschnitt: Manuelles Splashscreen-Handling

Wenn Sie eine manuelle Kontrolle bevorzugen oder eine benutzerdefinierte Logik benötigen, können Sie das 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();

Das Ereignis appReady Das Ereignis wird einmal ausgelöst, wenn die App fertig mit der Initialisierung und der Anwendung von etwaigen ausstehenden Updates ist. Dies ist der Zeitpunkt, an dem es sicher ist, die UI der App anzuzeigen, da es sicherstellt, dass der Benutzer die neueste Version sieht.

Zusätzlich zum Handhaben des Ereignisses empfehlen wir, die appReady Konfigurationsoption auf keepUrlPathAfterReload zu setzen, wenn Sie einen Instant-Apply-Modus verwenden. Dies bewahrt den aktuellen URL-Pfad bei einem Neustart der App aufgrund eines Updates, wodurch die Position des Benutzers im App und eine Orientierungslosigkeit verringert werden. true __CAPGO_KEEP_0__

Wenn Sie das appReady Event nicht behandeln und nicht keepUrlPathAfterReload setzen, wenn Sie einen sofortigen Anwendungsmodus verwenden, kann der Benutzer kurzzeitig eine veraltete Version der App sehen, auf die Startseite zurückgeleitet werden oder einen Flicker erleben, während die Aktualisierung angewendet wird.

Ein sofortiger Anwendungsmodus kann nützlich sein, um kritische Fehler oder Sicherheitspatches bereitzustellen, aber er kommt mit einigen Kompromissen:

  • Der Benutzer kann ein kurzes Flickern oder eine Ladezustand sehen, während die Aktualisierung angewendet wird, wenn Sie das Splashscreen nicht ordnungsgemäß mit autoSplashscreen oder manuellem appReady Event-Handling handhaben.
  • Wenn die Aktualisierung die App-Zustand oder die Benutzeroberfläche ändert, kann der Benutzer eine störende Änderung in der Mitte einer Sitzung sehen.
  • Der Benutzer kann sich verloren fühlen, wenn keepUrlPathAfterReload nicht gesetzt ist, was sie verwirren kann.
  • Sie müssen sorgfältig den Zustand speichern und wiederherstellen, um eine glatte Übergabe zu gewährleisten.

Wenn Sie den sofortigen Anwendungsmodus aktivieren, empfehlen wir:

  • Mit autoSplashscreen: true für die einfachste Einrichtung oder manuell die appReady Veranstaltung, wenn Sie eine benutzerdefinierte Logik benötigen.
  • Einstellung keepUrlPathAfterReload zu true um die Benutzerposition im App zu speichern.
  • Speichern und die App-Zustand wie erforderlich, um den Benutzerfortschritt zu vermeiden.
  • Gründlich testen Sie das Update-Verhalten Ihrer App, um sicherzustellen, dass es keine jarring Übergänge, verlorene Zustände oder verwirrende Standortänderungen gibt.

In den meisten Fällen bietet die Standard-Update-Verhaltensammlung den besten Ausgleich zwischen der schnellen Bereitstellung von Updates und der Minimierung von Störungen. Aber für Apps mit spezifischen Anforderungen bietet Capgo die Flexibilität, die Anwendung von Updates zu customisieren, wenn und wie sie angewendet werden.

Wenn Sie mit verwenden Aktualisierungsverhalten um Live-Aktualisierungen zu planen, verbinden Sie es mit 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, Aktualisierungstypen für die Implementierungsdetails in Aktualisierungstypen und Einführung für die Implementierungsdetails in Einführung.