Aggiorna il comportamento
Copia un promemoria di configurazione con le istruzioni di installazione e la guida markdown completa per questo plugin.
When rilasci un aggiornamento per il tuo Capgo app, probabilmente desideri che i tuoi utenti ricevano quell'aggiornamento il prima possibile. Ma non vuoi anche interrompere la loro esperienza facendo loro aspettare per il download o riavviare l'app in mezzo a una sessione.
Capgo’s comportamento di aggiornamento è progettato per trovare un equilibrio tra la consegna degli aggiornamenti velocemente e la minimizzazione della interruzione per i tuoi utenti.
Flusso di Aggiornamento Predefinito
Sezione intitolata “Flusso di Aggiornamento Predefinito”Di default, ecco come Capgo gestisce gli aggiornamenti dell'app:
-
When 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 è stato trovato 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 chiuda l'app in background.
-
When l'utente riporta l'app in primo piano, saranno in esecuzione la versione aggiornata.
Questo flusso assicura che gli utenti siano sempre in esecuzione la versione più aggiornata del tuo app, senza mai essere interrotti da promemoria di aggiornamento o costretti ad aspettare per i download.
Perché Questo Approccio?
Sezione intitolata “Perché Questo Approccio?”L'applicazione delle aggiornamenti su un evento di background o di chiusura ha alcuni benefici chiave per l'esperienza dell'utente:
-
Gli utenti non vengono 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 frequentemente senza preoccuparti di interrompere gli utenti attivi.
Il principale svantaggio è che se un utente mette in background e riporta velocemente l'app, potrebbe perdere lo stato non salvato dal momento in cui l'aggiornamento è stato applicato tra quelle azioni.
Per mitigare questo, raccomandiamo:
-
Salvare lo stato frequentemente e ripristinarlo con grazia quando l'app si riavvia.
-
Evitare aggiornamenti molto frequenti che modificano parti grandi dello stato dell'applicazione.
-
Considerare la personalizzazione del comportamento di aggiornamento per flussi sensibili (vedere di seguito).
Personalizzare l'applicazione degli aggiornamenti
Sottosezione intitolata “Personalizzare l'applicazione degli aggiornamenti”In alcuni casi, potresti voler avere più controllo sul momento esatto in cui viene applicato l'aggiornamento. Ad esempio, potresti voler assicurarti che l'utente completi un flusso in corso prima di aggiornare, o coordinare l'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 dell'installazione dell'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 dell'aggiornamento fino a dopo il 1 giugno 2023 E l'applicazione è stata backgroundata per almeno 60 secondi.
Il ritardo disponibile per le condizioni è:
date: Attendere fino a una data/ora specifica per applicare l'aggiornamento.background: Attendere un minimo di durata dopo che l'applicazione è stata backgroundata per applicare l'aggiornamento.nativeVersion: Aspettare per una versione binaria nativa minima essere installata prima di applicare l'aggiornamento.kill: Aspettare fino all'evento di uccisione dell'app successiva per applicare l'aggiornamento.
È possibile miscelare queste condizioni per controllare con precisione quando viene installato l'aggiornamento.
Applicare Aggiornamenti Subito
Sottosezione intitolata “Applicare Aggiornamenti Subito”Per gli aggiornamenti critici o le 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 la autoUpdate politica nella tua configurazione di Capacitor.
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 ucciso (avvio freddo). Dopo la prima verifica, ricadere nel"atBackground"comportamento'always': Controlla ogni transizione in primo piano e applica immediatamente quando è disponibile un aggiornamento'onlyDownload': Controlla e scarica automaticamente, emitiupdateAvailable, e non impostare mai il prossimo bundle o applicare un aggiornamento automaticamente
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 controlla ogni transizione in primo piano e applica immediatamente un aggiornamento non appena la scarica si completa durante quel controllo, anche se l'utente sta utilizzando attivamente l'app. Le verifiche periodiche controllate da periodCheckDelay possono attivare lo stesso comportamento di applicazione istantanea mentre l'app rimane aperta.
Nota che perché autoUpdate è una configurazione nativa, i modi di applicazione istantanea richiedono alcune ulteriori gestione nel tuo JavaScript code.
Scaricamento Automatico Senza Applicazione
Sezione 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 l'acquisizione di un bundle. L'applicazione può quindi decidere quando chiamare CapacitorUpdater.set() o mostrare il proprio prompt di aggiornamento.
Gestione automatica dello schermo di caricamento
Sezione intitolata “Gestione automatica dello schermo di caricamento”Per rendere più facili da utilizzare le modalità di applicazione istantanea, Capgo fornisce un autoSplashscreen opzione che gestisce automaticamente la nascita dello schermo di caricamento per conto tuo (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 caricamento quando viene applicato un aggiornamento
- Il plugin nasconde automaticamente lo schermo di caricamento quando non è necessario alcun aggiornamento
- Non è necessario ascoltare manualmente per
appReadyeventi o chiamataSplashScreen.hide()
Gestione dello schermo di benvenuto manuale
Se preferisci il controllo manuale o hai bisogno di logica personalizzata, puoi disabilitaree gestirlo da solo: autoSplashscreen Copia negli appunti
import { CapacitorUpdater } from '@capgo/capacitor-updater';import { SplashScreen } from '@capacitor/splash-screen';
CapacitorUpdater.addListener('appReady', () => { // Hide splash screen SplashScreen.hide();});
CapacitorUpdater.notifyAppReady();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. appReady Inoltre, oltre alla gestione dell'
evento, raccomandiamo di impostare l' appReady opzione di configurazione su keepUrlPathAfterReload quando si utilizza un modello 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. true __CAPGO_KEEP_0__
If non gestisci l'evento e impostare appReady quando si utilizza un modalità di applicazione istantanea, l'utente potrebbe vedere una versione obsoleta dell'app, essere riportato alla route iniziale o vedere un lampo mentre l'aggiornamento viene applicato. keepUrlPathAfterReload 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 brevi se non gestisci correttamente lo schermo di benvenuto (in modo automatico o manuale).
- Se l'aggiornamento modifica lo stato dell'app o l'interfaccia utente, l'utente potrebbe vedere un cambiamento disorientante in mezzo a una sessione.
autoSplashscreenIl posizionamento dell'utente nell'app potrebbe essere perso se __CAPGO_KEEP_0__ non è impostato, potenzialmente disorientandoli.appReadyDovrai gestire con cura la salvaguardia e il ripristino dello stato per garantire una transizione liscia. - Se abiliti l'applicazione istantanea, raccomandiamo:
- __CAPGO_KEEP_1__
keepUrlPathAfterReload__CAPGO_KEEP_2__ - __CAPGO_KEEP_3__
__CAPGO_KEEP_4__
- Usando
autoSplashscreen: trueper la configurazione più semplice, o gestendo manualmente ilappReadyse hai bisogno di logica personalizzata. - Impostare
keepUrlPathAfterReloadper preservare la posizione dell'utente nell'app.trueSalvare e ripristinare lo stato dell'app quando necessario per evitare di perdere il progresso dell'utente. - Testare approfonditamente il comportamento dell'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 dislocazione. Ma per le app con esigenze specifiche, __CAPGO_KEEP_0__ fornisce la flessibilità di personalizzare quando e come gli aggiornamenti vengono applicati.
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.
Sezione intitolata “Continua da Aggiornamento del comportamento”
Se stai utilizzandoCapgo Aggiorna il 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 Panoramica, Caratteristiche per i dettagli di implementazione in Caratteristiche, Tipi di Aggiornamento per i dettagli di implementazione in Tipi di Aggiornamento, e Avvio Guidato per i dettagli di implementazione in Avvio Guidato.