Aktualisierungsverhalten
Wenn Sie ein Update für Ihre Capgo-App veröffentlichen, möchten Sie wahrscheinlich, dass Ihre Nutzer dieses Update so schnell wie möglich erhalten. Allerdings möchten Sie deren Nutzungserfahrung nicht stören, indem Sie sie zwingen, mitten in einer Sitzung auf einen Download zu warten oder die App neu zu starten.
Das Update-Verhalten von Capgo wurde entwickelt, um eine Balance zwischen schneller Update-Bereitstellung und minimaler Störung der Nutzer zu finden.
Standard Update-Ablauf
Standardmäßig behandelt Capgo App-Updates wie folgt:
-
Beim App-Start prüft das Capgo-Plugin, ob ein neues Update verfügbar ist
-
Wenn ein Update gefunden wird, wird es im Hintergrund heruntergeladen, während der Nutzer die aktuelle Version der App weiter verwendet
-
Sobald der Download abgeschlossen ist, wartet Capgo darauf, dass der Nutzer die App entweder in den Hintergrund verschiebt oder vollständig beendet
-
Wenn der Nutzer die App das nächste Mal startet, wird die aktualisierte Version ausgeführt
Dieser Ablauf stellt sicher, dass Nutzer immer die neueste Version Ihrer App verwenden, ohne jemals durch Update-Benachrichtigungen unterbrochen oder zum Warten auf Downloads gezwungen zu werden.
Warum dieser Ansatz?
Das Anwenden von Updates bei Hintergrund- oder Beendigungsereignissen hat einige wichtige Vorteile für die Benutzererfahrung:
-
Nutzer werden nicht durch Update-Aufforderungen unterbrochen oder müssen mitten in einer Sitzung auf Downloads warten
-
Updates werden nahtlos zwischen den Sitzungen angewendet, sodass das Starten der App immer ein frisches Erlebnis ist
-
Sie können häufig Updates bereitstellen, ohne sich Sorgen machen zu müssen, aktive Nutzer zu stören
Der Hauptnachteil ist, dass wenn ein Nutzer die App in den Hintergrund verschiebt und schnell wieder aufruft, könnte nicht gespeicherter Status verloren gehen, da das Update zwischen diesen Aktionen angewendet wurde.
Um dies zu vermeiden, empfehlen wir:
-
Status häufig zu speichern und ihn beim Fortsetzen der App korrekt wiederherzustellen
-
Sehr häufige Updates zu vermeiden, die große Teile des App-Status verändern
-
Die Anpassung des Update-Verhaltens für sensible Abläufe in Erwägung zu ziehen (siehe unten)
Anpassen 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 vielleicht sicherstellen, dass ein Nutzer einen laufenden Prozess abschließt, bevor das Update installiert wird, oder ein App-Update mit einer serverseitigen Änderung koordinieren.
Capgo bietet eine setDelay
-Funktion, mit der Sie Bedingungen festlegen können, die erfüllt sein müssen, bevor ein Update installiert wird:
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 eines Updates verzögern, bis nach dem 1. Juni 2023 UND die App mindestens 60 Sekunden im Hintergrund war.
Die verfügbaren Verzögerungsbedingungen sind:
date
: Warten bis nach einem bestimmten Datum/Uhrzeit, um das Update anzuwendenbackground
: Nach einer Mindestdauer warten, nachdem die App in den Hintergrund verschoben wurdenativeVersion
: Warten auf die Installation einer nativen Binary mit einer Mindestversionkill
: Warten bis zum nächsten App-Beendigungsereignis
Sie können diese Bedingungen kombinieren, um präzise zu steuern, wann ein Update installiert wird.
Sofortiges Anwenden von Updates
Für kritische Updates oder Apps mit sehr einfachem Status möchten Sie möglicherweise ein Update sofort nach dem Download anwenden, ohne auf ein Hintergrund- oder Beendigungsereignis zu warten. Capgo unterstützt dies über die directUpdate
-Konfigurationsoption.
directUpdate
wird in Ihrer capacitor.config.ts
-Datei gesetzt, nicht im JavaScript-Code:
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: true, directUpdate: true, }, }, keepUrlPathAfterReload: true,};
export default config;
Mit aktiviertem directUpdate
wird Capgo ein Update sofort anwenden, sobald der Download abgeschlossen ist, auch wenn der Nutzer die App aktiv verwendet.
Beachten Sie, dass directUpdate
als native Konfiguration zusätzliche Behandlung in Ihrem JavaScript-Code erfordert.
Bei Verwendung von directUpdate
müssen Sie auf das appReady
-Event hören und den Splash-Screen Ihrer App entsprechend ausblenden:
import { CapacitorUpdater } from '@capgo/capacitor-updater';import { SplashScreen } from '@capacitor/splash-screen';
CapacitorUpdater.addListener('appReady', () => { // Splash Screen ausblenden SplashScreen.hide();});
CapacitorUpdater.notifyAppReady();
Das appReady
-Event wird ausgelöst, sobald die App die Initialisierung abgeschlossen und alle ausstehenden Updates angewendet hat. Ab diesem Zeitpunkt ist es sicher, die Benutzeroberfläche Ihrer App anzuzeigen, da sichergestellt ist, dass der Nutzer die neueste Version sieht.
Zusätzlich zur Behandlung des appReady
-Events empfehlen wir, die Konfigurationsoption keepUrlPathAfterReload
auf true
zu setzen, wenn Sie directUpdate
verwenden. Dies bewahrt den aktuellen URL-Pfad, wenn die App aufgrund eines Updates neu geladen wird, und hilft dabei, den Standort des Nutzers in der App beizubehalten und Desorientierung zu reduzieren.
Wenn Sie das appReady
-Event nicht behandeln und keepUrlPathAfterReload
nicht setzen, wenn Sie directUpdate
verwenden, könnte der Nutzer kurzzeitig eine veraltete Version der App sehen, zur Ausgangsroute zurückgeführt werden oder ein Flackern sehen, während das Update angewendet wird.
Die Verwendung von directUpdate
kann nützlich sein, um kritische Fehlerbehebungen oder Sicherheitspatches bereitzustellen, bringt aber einige Kompromisse mit sich:
- Der Nutzer könnte ein kurzes Flackern oder einen Ladezustand sehen, während das Update angewendet wird, wenn Sie das
appReady
-Event nicht richtig behandeln - Wenn das Update den App-Status oder die Benutzeroberfläche ändert, könnte der Nutzer eine störende Änderung mitten in einer Sitzung sehen
- Der Standort des Nutzers in der App könnte verloren gehen, wenn
keepUrlPathAfterReload
nicht gesetzt ist, was möglicherweise desorientierend wirkt - Sie müssen sorgfältig das Speichern und Wiederherstellen des Status handhaben, um einen reibungslosen Übergang zu gewährleisten
Wenn Sie directUpdate
aktivieren, empfehlen wir:
- Behandlung des
appReady
-Events zur Kontrolle, wann die Benutzeroberfläche Ihrer App angezeigt wird - Setzen von
keepUrlPathAfterReload
auftrue
, um den Standort des Nutzers in der App zu bewahren - Speichern und Wiederherstellen des App-Status nach Bedarf, um Nutzerffortschritt nicht zu verlieren
- Gründliches Testen des Update-Verhaltens Ihrer App, um sicherzustellen, dass es keine störenden Übergänge, verlorenen Status oder desorientierenden Standortänderungen gibt
In den meisten Fällen bietet das Standard-Update-Verhalten die beste Balance zwischen schneller Update-Bereitstellung und minimaler Störung. Aber für Apps mit spezifischen Anforderungen bietet Capgo die Flexibilität, anzupassen, wann und wie Updates angewendet werden.