Comportamento di Aggiornamento
Copia un prompt di configurazione con le istruzioni di installazione e la guida markdown completa per questo plugin.
When you rilasciare 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 aspettare per il download o riavviare l'app nel mezzo di 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
Sottosezione 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 completata la download, Capgo attende che l'utente metta l'app in background.
-
Quando l'utente riporta l'app in primo piano, eseguirà la versione aggiornata.
Questo flusso garantisce che gli utenti stiano sempre eseguendo 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 di 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.
-
Gli aggiornamenti vengono applicati in modo trasparente tra le sessioni, quindi l'esperienza di avvio dell'app è sempre fresca.
-
Potete distribuire aggiornamenti frequenti senza preoccuparvi di interrompere gli utenti attivi.
Il principale svantaggio è che se un utente mette in background e ripristina velocemente la vostra app, potrebbe perdere lo stato non salvato poiché l'aggiornamento è stato applicato tra quelle azioni.
Per mitigare questo, raccomandiamo:
-
Salvare lo stato frequentemente e ripristinarlo con grazia quando l'app riprende.
-
Evitare aggiornamenti molto frequenti che modificano parti grandi dello stato dell'app.
-
Considerare la personalizzazione del comportamento dell'aggiornamento per flussi sensibili (vedi di seguito).
Personalizzare Quando gli Aggiornamenti Vengono Applicati
Sottosezione intitolata “Personalizzare Quando gli Aggiornamenti Vengono Applicati”In alcuni casi, potreste volere più controllo sulla precisione esatta quando un aggiornamento viene applicato. Ad esempio, potreste voler assicurarvi 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 vi 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', }, ],});Esempio: questo aggiornamento verrà installato solo dopo il 1 giugno 2023 E l'applicazione sarà stata messa in background per almeno 60 secondi.
Il condizionale disponibili sono:
date: Attendere fino a una data/ora specifica per applicare l'aggiornamento.background: Attendere un minimo di durata dopo che l'applicazione è stata messa in background per applicare l'aggiornamento.nativeVersion: Attendere l'installazione di un binario nativo con una versione minima prima di applicare l'aggiornamento.kill: Attendere fino all'evento di uccisione dell'applicazione successivo per applicare l'aggiornamento.
È possibile combinare e miscelare questi condizionali per controllare con precisione quando viene installato l'aggiornamento.
Applicare Aggiornamenti Subito
Titolo della sezione “Applicare Aggiornamenti Subito”Per gli aggiornamenti critici o 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 la autoUpdate politica nella tua Capacitor config.
autoUpdate file, non nel JavaScript __CAPGO_KEEP_0__. Supporta questi valori: capacitor.config.ts file, not in JavaScript code. It supports these values:
falseo'off': Disabilita le verifiche automatiche degli aggiornamentitrueo'atBackground': Aggiorna automaticamente e scarica ogni volta che l'app è in primo piano'atInstall': Aggiorna immediatamente solo dopo un'installazione fresca o un aggiornamento dell'applicazione nativa; altrimenti utilizza"atBackground"comportamento'onLaunch': Aggiorna immediatamente solo quando l'app viene riportata in primo piano da uno stato ucciso (avvio freddo). Dopo la prima verifica, ricade su"atBackground"comportamento'always': Verifica ogni volta che l'app passa in primo piano e applica immediatamente quando è disponibile un aggiornamento'onlyDownload': Verifica e scarica automaticamente, emetteupdateAvailable, e non impostare mai il prossimo pacchetto o applicare un aggiornamento automaticamente
Testa una costruzione nativa senza aggiornamenti in tempo reale
Sezione intitolata “Testa una costruzione nativa senza aggiornamenti in tempo reale”Vedi Testa le costruzioni native senza aggiornamenti in tempo reale per le salvaguardie di configurazione nativa-versione, politica di canale e 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 for 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 download si completa durante quel controllo, anche se l'utente sta utilizzando attivamente l'app. Le verifiche periodiche sono controllate da periodCheckDelay possono attivare lo stesso comportamento di applicazione immediata mentre l'applicazione rimane aperta.
Nota che poiché autoUpdate è una configurazione nativa, i modi di applicazione istantanea richiedono alcune ulteriori gestione nel tuo JavaScript code.
in la configurazione SplashScreen (come mostrato sopra) affinché lo schermo di benvenuto rimanga visibile fino a quando l'aggiornamento non si conclude.
Scaricando Automaticamente Senza ApplicareIf you want Capgo to check and download updates automatically but never apply them automatically, use autoUpdate: 'onlyDownload':
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'onlyDownload', }, },};In questo modo, il plugin emette updateAvailable dopo che è stato scaricato un bundle. La tua app può quindi decidere quando chiamare CapacitorUpdater.set() o mostrare il proprio avviso di aggiornamento.
Gestione automatica dello schermo di benvenuto
Sezione intitolata “Gestione automatica dello schermo di benvenuto”Modalità di applicazione istantanea ("atInstall", "onLaunch", "always") richiedono autoSplashscreen e @capacitor/splash-screen disponibile dalla versione 7.6.0. Installa il plugin, quindi mantieni visibile lo schermo di benvenuto fino a quando Capgo lo nasconde:
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 un aggiornamento
- Non è necessario ascoltare manualmente per
appReadyo chiamareSplashScreen.hide()
Lavoro extra dopo lo schermo si nasconde
Sottosezione intitolata “Lavoro extra dopo lo schermo si nasconde”Conserva autoSplashscreen: true. Se hai bisogno di logica extra dopo che l'aggiornamento è pronto, ascolta anche appReady e non saltare il plugin dello schermo o autoSplashscreen per questo:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
CapacitorUpdater.addListener('appReady', () => { // Update is applied. autoSplashscreen already hid the splash.});
CapacitorUpdater.notifyAppReady();La appReady l'evento si attiva una volta che l'app ha completato l'inizializzazione e l'applicazione di eventuali aggiornamenti in sospeso.
Impostare keepUrlPathAfterReload a true context":"Page/area: Pagina prodotto live updates. Ruolo: Etichetta breve UI o elemento di navigazione. Chiave di messaggio `live_update_dynamic_label_to` (Etichetta dinamica di aggiornamento live)."
quando si utilizza un modello di applicazione istantanea. Ciò preserva la cartella URL corrente quando l'app viene riavviata a causa di un aggiornamento.
- Utilizzare un modello di applicazione istantanea può essere utile per fornire correzioni di bug critici o patch di sicurezza, ma ciò comporta alcuni compromessi:
@capacitor/splash-screenLo utente potrebbe vedere un breve scintillio o stato di caricamento mentre l'aggiornamento viene applicato seautoSplashscreenè mancante o - non è abilitato.
- Se l'aggiornamento modifica lo stato dell'app o l'interfaccia utente, lo utente potrebbe vedere un cambiamento disorientante in mezzo a una sessione.
keepUrlPathAfterReloadL'utente potrebbe perdere la posizione nell'app se - Deve gestire con cura il salvataggio e il ripristino dello stato per garantire una transizione fluida.
Se abiliti l'applicazione istantanea, consigliamo:
- Caricare con
npx @capgo/cli@latest bundle upload --deltacosì che il download non rallenti l'esperienza utente. - Installare
@capacitor/splash-screene impostareautoSplashscreen: trueconlaunchAutoHide: false. - Impostare
keepUrlPathAfterReloadatrueper preservare la posizione dell'utente nell'app. - Salvare e ripristinare lo stato dell'app quando necessario per evitare la perdita del 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 la maggior parte dei casi, il comportamento di aggiornamento predefinito fornisce il miglior equilibrio tra la consegna degli aggiornamenti in modo rapido e la minimizzazione della interruzione. Ma per le app con esigenze specifiche, Capgo fornisce la flessibilità per personalizzare quando e come gli aggiornamenti vengono applicati.
Continua da Aggiornamento del comportamento
Se stai utilizzandoAggiornamento del comportamento per pianificare la consegna degli aggiornamenti in tempo reale, connettilo con __CAPGO_KEEP_0__ Aggiornamenti in tempo reale Capgo Live Updates 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.