Comportamento dell'Aggiornamento
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Quando rilasciate un aggiornamento per il vostro Capgo app, probabilmente desiderate che i vostri utenti ricevano quell'aggiornamento il prima possibile. Ma non volete anche interrompere la loro esperienza obbligandoli a attendere un download o a riavviare l'applicazione in mezzo a una sessione.
Capgo's comportamento di aggiornamento è progettato per bilanciare la consegna degli aggiornamenti velocemente e minimizzare la dislocazione per i vostri utenti.
Flusso di Aggiornamento Predefinito
Sezione intitolata “Flusso di Aggiornamento Predefinito”Di default, ecco come Capgo gestisce gli aggiornamenti dell'applicazione:
-
On il lancio dell'app, il plugin Capgo controlla se è disponibile una nuova versione aggiornata.
-
Se viene trovata una versione aggiornata, viene scaricata in background mentre l'utente continua ad utilizzare la versione corrente dell'app.
-
Una volta completato il download, Capgo attende che l'utente chiuda l'app o la fermi completamente.
-
Quando l'utente riavvia l'app, utilizzerà la versione aggiornata.
Questo flusso garantisce che gli utenti utilizzino sempre la versione più aggiornata dell'app, senza mai essere interrotti da richieste di aggiornamento o costretti a attendere i download.
Perché Questo Approccio?
Sottosezione intitolata “Perché Questo Approccio?”L'applicazione degli aggiornamenti su un evento di background o chiusura ha alcuni benefici chiave per l'esperienza utente:
-
Gli utenti non sono interrotti da richieste di aggiornamento o costretti a attendere i download in mezzo a una sessione.
-
Le aggiornamenti vengono applicati in modo trasparente tra le sessioni, quindi l'esperienza di avvio dell'app è sempre fresca.
-
Puoi distribuire aggiornamenti frequenti senza preoccuparti di interrompere gli utenti attivi.
Il principale svantaggio è che se un utente mette in background e ripristina velocemente la tua app, potrebbe perdere lo stato non salvato poiché l'aggiornamento è stato applicato tra quelle azioni.
Per mitigare questo, consigliamo:
-
Salvare lo stato frequentemente e ripristinarlo con grazia quando l'app si ripristina.
-
Evitare aggiornamenti molto frequenti che modificano parti grandi dello stato dell'app.
-
Considerare la personalizzazione del comportamento di aggiornamento per flussi sensibili (vedi di seguito).
Personalizzare Quando gli Aggiornamenti Vengono Applicati
Sezione intitolata “Personalizzare Quando gli Aggiornamenti Vengono Applicati”In alcuni casi, potresti volere più controllo sulla precisa applicazione di un aggiornamento. Ad esempio, potresti voler assicurarti che un utente completi un flusso in corso prima di aggiornare, o coordinare un aggiornamento dell'app con un cambiamento server-side.
Capgo fornisce una setDelay funzione che ti consente di specificare le condizioni che devono essere soddisfatte prima di installare un aggiornamento:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setMultiDelay({ delayConditions: [ { kind: 'date', value: '2023-06-01T00:00:00.000Z', }, { kind: 'background', value: '60000', }, ],});Questo esempio ritarderebbe l'installazione di un aggiornamento fino a dopo il 1° giugno 2023 E l'applicazione è stata messa in background per almeno 60 secondi.
Le condizioni di ritardo disponibili sono:
date: Aspettare fino a dopo una data/ora specifica per applicare l'aggiornamento.background: Aspettare un minimo di durata dopo che l'applicazione è stata messa in background per applicare l'aggiornamento.nativeVersion: Aspettare l'installazione di un binario nativo con una versione minima prima di applicare l'aggiornamento.kill: Aspettare fino all'evento di uccisione dell'applicazione successivo per applicare l'aggiornamento.
Puoi mescolare e combinare queste condizioni per controllare esattamente quando viene installato un aggiornamento.
Applicazione Aggiornamenti Subito
Sezione intitolata “Applicazione Aggiornamenti Subito”Per gli aggiornamenti critici o per le app con uno stato molto semplice, potresti voler applicare un aggiornamento non appena è stato scaricato, senza attendere un evento di background o di chiusura. Capgo supporta questo tramite il autoUpdate politica nella tua Capacitor config.
autoUpdate è impostato nel tuo capacitor.config.ts file, non in JavaScript code. Supporta questi valori:
falseo'off': Disabilita l'aggiornamento automaticotrueo'atBackground'(default): Scarica automaticamente e applica quando l'app si sposta in background'atInstall': Applica immediatamente solo dopo un installazione fresca o aggiornamento dell'app nativa, altrimenti utilizza il flusso di background'onLaunch': Applica immediatamente all'avvio dell'app, altrimenti utilizza il flusso di background dopo il controllo di avvio'always': Applica immediatamente ogni volta che esegue l'aggiornamento automatico'onlyDownload': Scarica automaticamente, emetti e non impostare mai il bundle successivo automaticamenteupdateAvailableCopia nella clipboard
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;With autoUpdate: 'always', Capgo applicherà immediatamente un aggiornamento non appena la download si completa durante un controllo di aggiornamento, anche se l'utente sta utilizzando l'app. Senza il controllo periodico abilitato, ciò significa che gli aggiornamenti saranno applicati solo quando l'app si avvia o riprende dallo sfondo.
Nota che perché autoUpdate è una configurazione nativa, i modi di applicazione istantanea richiedono alcune gestione aggiuntiva nel tuo JavaScript code.
Scaricamento Automatico Senza Applicazione
Sottosezione intitolata “Scaricamento Automatico Senza Applicazione”Se desideri che Capgo controlli e scarichi gli aggiornamenti automaticamente, ma non li applichi mai automaticamente, utilizza autoUpdate: 'onlyDownload':
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'onlyDownload', }, },};In questo modo, il plugin emette updateAvailable dopo che è stato scaricato un bundle. L'applicazione può quindi decidere quando chiamare CapacitorUpdater.set() o mostrare il proprio prompt di aggiornamento.
Gestione automatica dello schermo di benvenuto
Sezione intitolata “Gestione automatica dello schermo di benvenuto”Per rendere più facili da utilizzare le modalità di applicazione istantanea, Capgo fornisce un' autoSplashscreen opzione che gestisce automaticamente la nascosta dello schermo di benvenuto per te (disponibile dalla versione 7.6.0):
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'always', // or 'atInstall' autoSplashscreen: true, // Automatically hide splashscreen keepUrlPathAfterReload: true, }, SplashScreen: { launchAutoHide: false, }, },};Quando autoSplashscreen è abilitato:
- Il plugin nasconde automaticamente lo schermo di benvenuto quando viene applicato un aggiornamento
- The plugin nasconde automaticamente lo schermo di benvenuto quando non è necessario un aggiornamento
- Non è necessario ascoltare manualmente gli
appReadyo chiamareSplashScreen.hide()
Gestione manuale dello schermo di benvenuto
Sottosezione intitolata “Gestione manuale dello schermo di benvenuto”Se preferisci il controllo manuale o hai bisogno di logica personalizzata, puoi disabilitare autoSplashscreen e gestirlo da solo:
import { CapacitorUpdater } from '@capgo/capacitor-updater';import { SplashScreen } from '@capacitor/splash-screen';
CapacitorUpdater.addListener('appReady', () => { // Hide splash screen SplashScreen.hide();});
CapacitorUpdater.notifyAppReady();L’ appReady si attiva una volta che l’app ha completato l’inizializzazione e l’applicazione di eventuali aggiornamenti in sospeso. Questo è il punto in cui è sicuro mostrare l’interfaccia utente dell’app, poiché assicura che l’utente veda la versione più recente.
Inoltre, oltre alla gestione dell’ appReady consigliamo di impostare il keepUrlPathAfterReload opzione di configurazione per true quando si utilizza un modalità di applicazione istantanea. Questo preserva la path dell'URL corrente quando l'app viene riavviata a causa di un aggiornamento, aiutando a mantenere la posizione dell'utente nell'app e riducendo la disorientamento.
Se non gestisci l' appReady evento e imposti keepUrlPathAfterReload quando si utilizza una modalità di applicazione istantanea, l'utente potrebbe vedere una versione obsoleta dell'app per un breve momento, essere riportato alla route iniziale o vedere un lampo mentre l'aggiornamento viene applicato.
Utilizzare una modalità di applicazione istantanea può essere utile per fornire correzioni critiche di bug o patch di sicurezza, ma comporta alcuni compromessi:
- L'utente potrebbe vedere un lampo o uno stato di caricamento mentre l'aggiornamento viene applicato se non gestisci correttamente lo schermo di benvenuto (con
autoSplashscreeno gestione manualeappReadydel - evento).
- Se l'aggiornamento modifica lo stato dell'app o l'interfaccia utente, l'utente potrebbe vedere un cambiamento disorientante in mezzo a una sessione.
keepUrlPathAfterReloadLa posizione dell'utente nell'app potrebbe essere persa se non è impostato il","potenzialmente disorientando l'utente. - È necessario gestire con cura lo stato di salvataggio e ripristino per garantire una transizione liscia.
Se abiliti l'aggiornamento istantaneo, consigliamo:
- Utilizzare
autoSplashscreen: trueper la configurazione più semplice, o gestire manualmente l'appReadyevento se hai bisogno di logica personalizzata. - Impostare
keepUrlPathAfterReloadatrueper preservare la posizione dell'utente nell'applicazione. - Salvare e ripristinare lo stato dell'applicazione quando necessario per evitare la perdita del progresso dell'utente.
- Testare attentamente il comportamento di aggiornamento dell'applicazione per garantire che non ci siano transizioni brusche, stato perso o cambiamenti di posizione disorientanti.
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.
Aggiornamento del comportamento
Sezione intitolata “Continua dall'Aggiornamento del comportamento”Se stai utilizzando Aggiornamento del comportamento per pianificare la consegna di aggiornamenti in diretta, connettilo con Capgo Aggiornamenti in tempo reale per il flusso di lavoro del prodotto in Capgo Aggiornamenti in tempo reale, Panoramica per i dettagli di implementazione in Panoramica, Caratteristiche per i dettagli di implementazione in Caratteristiche, Tipi di Aggiornamento per i dettagli di implementazione in Tipi di Aggiornamento e Iniziare per i dettagli di implementazione in Iniziare.