Comportamento di 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 il download o a riavviare l'applicazione in mezzo a una sessione.
L'aggiornamento di Capgo è progettato per bilanciare la consegna degli aggiornamenti velocemente e minimizzare la distruzione per i vostri utenti.
Ciclo di Aggiornamento Predefinito
Sottosezione intitolata “Ciclo di Aggiornamento Predefinito”Di default, ecco come Capgo gestisce gli aggiornamenti degli app:
-
Quando l'app si sposta in primo piano, il plugin Capgo controlla per vedere se è disponibile un nuovo aggiornamento. Mentre l'app rimane aperta, controlla nuovamente ogni volta che scade il timer ripetuto controllato da
periodCheckDelay(10 minuti di default). -
Se è disponibile un aggiornamento, viene scaricato in background mentre l'utente continua ad utilizzare la versione corrente dell'app.
-
Una volta completato lo scarico, Capgo attende che l'utente metta l'app in background.
-
Quando l'utente riporta l'app in primo piano, avranno la versione aggiornata.
Questo flusso assicura che gli utenti stiano sempre eseguendo la versione più aggiornata dell'app, senza mai essere interrotti da promemoria di aggiornamento o costretti a attendere i download.
Perché Questo Approccio?
Sezione intitolata “Perché Questo Approccio?”L'applicazione degli aggiornamenti su un evento di background o di chiusura ha alcuni benefici chiave per l'esperienza utente:
-
Gli utenti non sono interrotti da promemoria di aggiornamento o costretti a attendere i download in mezzo a una sessione.
-
Gli aggiornamenti vengono applicati in modo trasparente tra le sessioni, quindi l'esperienza di avvio dell'app è sempre fresca.
-
Puoi distribuire aggiornamenti frequentemente senza preoccuparti di interrompere gli utenti attivi.
Il principale svantaggio è che se un utente chiude e riapre rapidamente l'app, potrebbe perdere lo stato non salvato dal momento in cui l'aggiornamento è stato applicato tra quelle azioni.
To mitigare questo, raccomandiamo:
-
Salvare lo stato frequentemente e ripristinarlo con cura quando l'applicazione riprende.
-
Evitare aggiornamenti molto frequenti che modificano parti grandi dello stato dell'applicazione.
-
Considerare la personalizzazione del comportamento di aggiornamento per flussi sensibili (vedi di seguito).
Personalizzare Quando gli Aggiornamenti Sono Applicati
Sottosezione intitolata “Personalizzare Quando gli Aggiornamenti Sono Applicati”In alcuni casi, potresti voler avere più controllo sul momento esatto in cui un aggiornamento viene applicato. Ad esempio, potresti voler assicurarti che l'utente completi un flusso in corso prima di aggiornare, o coordinare un aggiornamento dell'applicazione con un cambiamento server-side.
Capgo fornisce una setDelay funzione che ti consente di specificare le condizioni che devono essere soddisfatte prima che un aggiornamento venga installato:
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.
Il ritardo disponibile è condizionato da:
date: Aspettare fino a una data/ora specifica per applicare l'aggiornamento.background: Aspettare un minimo di tempo dopo che l'app è 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 l'evento di uccisione dell'app successivo per applicare l'aggiornamento.
Potete combinare queste condizioni per controllare esattamente quando viene installato l'aggiornamento.
Applicare Aggiornamenti Subito
Sottosezione intitolata “Applicare Aggiornamenti Subito”Per aggiornamenti critici o app con uno stato molto semplice, potreste voler applicare un aggiornamento non appena è stato scaricato, senza aspettare un evento di background o di uccisione. Capgo supporta questo tramite il autoUpdate Politica nel tuo Capacitor config.
autoUpdate è impostato nel tuo capacitor.config.ts file, non nel JavaScript code. Supporta questi valori:
falseo'off': Disabilita le verifiche automatiche degli aggiornamentitrueo'atBackground'(predefinito): Verifica e scarica automaticamente ogni volta che si effettua una verifica in primo piano, quindi applica l'aggiornamento la prossima volta che l'app si sposta in background'atInstall': Applica immediatamente solo dopo un installazione fresca o un aggiornamento dell'applicazione nativa; altrimenti utilizza"atBackground"comportamento'onLaunch': Applica immediatamente solo quando l'app viene riportata in primo piano da uno stato di morte (avvio freddo). Dopo la prima verifica, ricadere su"atBackground"comportamento'always': Verifica ogni transizione in primo piano e applica immediatamente ogni volta che è disponibile un aggiornamento'onlyDownload': Verifica e scarica automaticamente, emitiupdateAvailable, e non impostare mai il prossimo pacchetto o applicare un aggiornamento automaticamente
Testa una costruzione nativa senza aggiornamenti in tempo reale
Sottosezione intitolata “Testa una costruzione nativa senza aggiornamenti in tempo reale”Vedi Testare le costruzioni native senza aggiornamenti in tempo reale per le misure di sicurezza relative alla versione nativa, alla politica del canale e alla configurazione di CI.
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;Con autoUpdate: 'always', Capgo controlli su ogni transizione in primo piano e applica immediatamente un aggiornamento non appena il download si completa durante quel controllo, anche se l'utente sta utilizzando l'app attivamente. I controlli periodici controllati da periodCheckDelay possono attivare lo stesso comportamento di applicazione immediata mentre l'app rimane aperta.
Nota che poiché autoUpdate è una configurazione nativa, i modi di applicazione istantanea richiedono alcune ulteriori gestione nel tuo JavaScript code.
Se desideri che __CAPGO_KEEP_0__ controlli e scarichi gli aggiornamenti automaticamente, ma non li applichi mai automaticamente, utilizza
Copia negli appuntiIf you want Capgo to check and download updates automatically but never apply them automatically, use autoUpdate: 'onlyDownload':
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'onlyDownload', }, },};o mostrare il proprio prompt di aggiornamento. updateAvailable Gestione automatica dello schermo di benvenuto CapacitorUpdater.set() Sezione intitolata “Gestione automatica dello schermo di benvenuto”
Per rendere più facili da utilizzare i modi di applicazione istantanea, __CAPGO_KEEP_0__ fornisce un
In questo modo, hai il controllo completo sul momento in cui lo schermo di benvenuto viene nascosto dopo la conclusione del processo di aggiornamento.To make instant apply modes easier to use, Capgo provides an autoSplashscreen l'opzione che gestisce automaticamente la nascita dello schermo di benvenuto per te (disponibile a partire 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 applicata un'aggiornamento
- Il plugin nasconde automaticamente lo schermo di benvenuto quando non è necessario alcun aggiornamento
- Non hai bisogno di ascoltare manualmente gli
appReadyeventi o chiamareSplashScreen.hide()
Gestione manuale dello schermo di benvenuto
Sezione 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();Il appReady l'evento 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 a gestire l' appReady evento, raccomandiamo di impostare l' keepUrlPathAfterReload opzione di configurazione su true quando si utilizza un modalità di applicazione istantanea. Ciò preserva la cartella 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 si gestisce l' appReady evento e si imposta keepUrlPathAfterReload quando si utilizza una modalità di applicazione istantanea, l'utente potrebbe vedere brevemente una versione obsoleta dell'app, essere riportato alla rotta iniziale o vedere un lampo mentre l'aggiornamento viene applicato.
L'utilizzo di una modalità di applicazione istantanea può essere utile per fornire correzioni di bug critici o patch di sicurezza, ma comporta alcuni compromessi:
- L'utente potrebbe vedere un lampo o uno stato di caricamento brevi se non si gestisce correttamente lo schermo di benvenuto (in modo da __CAPGO_KEEP_0__)]}
autoSplashscreeno manualeappReadygestione degli eventi). - Se l'aggiornamento modifica lo stato dell'applicazione o l'interfaccia utente, l'utente potrebbe vedere un cambiamento disorientante in mezzo a una sessione.
- Il posizionamento dell'utente nell'applicazione potrebbe essere perso se
keepUrlPathAfterReloadnon è impostato, potenzialmente disorientandoli. - È necessario gestire con cura la salvataggio e il ripristino dello stato per garantire una transizione liscia.
Se abiliti l'applicazione istantanea, consigliamo:
- Utilizzare
autoSplashscreen: trueper la configurazione più semplice, o gestire manualmente l'appReadyevento se necessiti di logica personalizzata. - Impostare
keepUrlPathAfterReloadpertrueper preservare la posizione dell'utente nell'app. - Salvare e ripristinare lo stato dell'app quando necessario per evitare di perdere il progresso dell'utente.
- Testare approfonditamente il comportamento di aggiornamento dell'app per assicurarsi che non ci siano transizioni brusche, stato perso o cambiamenti di posizione disorientanti.
In molti casi, il comportamento di aggiornamento predefinito fornisce il miglior equilibrio tra la consegna di aggiornamenti rapidi e la minimizzazione della distruzione. Ma per le app con esigenze specifiche, Capgo offre la flessibilità di personalizzare quando e come gli aggiornamenti vengono applicati.
Continua da Aggiornamento del comportamento
Sezione intitolata “Continua da Aggiornamento del comportamento”Se stai utilizzando Aggiornamento del comportamento per pianificare la consegna di aggiornamenti in tempo reale, 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 Overview, Caratteristiche per i dettagli di implementazione in Caratteristiche, Tipi di aggiornamento per i dettagli di implementazione in Tipi di aggiornamento, e Avvio per i dettagli di implementazione in Avvio.