Vai al contenuto

Da V3 a V4

Dopo aver parlato molto con voi nella community Discord, ho capito che la modalità manuale era troppo macchinosa e poco sicura. Ad esempio, non era possibile l'auto-revert: se un aggiornamento manuale falliva, l'utente doveva disinstallare e reinstallare l'app, con una UX pessima.

Nel frattempo, ho colto l'occasione per darvi più libertà e rimuovere tutte le code sbagliate che ho fatto.

npm i @capgo/capacitor-updater@4

Aggiornamento automatico cloud

Sezione intitolata “Auto-update cloud”

Se utilizzi l'esempio base nella tua app, puoi migrare alla nuova versione in totale sicurezza. Buon divertimento!

Aggiornamento automatico self-hosted

Sezione intitolata “Auto-update self-hosted”

Per te rimarrà semplice, ecco le modifiche:

  • Il nome dell'impostazione da autoUpdateUrl nella updateUrl
  • Il metodo Endpoint è cambiato da GET a POST

Per te questa è la modifica più significativa, ma in meglio! Ottieni tantissimi miglioramenti. Leggi attentamente.

  • autoUpdateUrl diventa updateUrl poiché questa impostazione può ora essere utilizzata anche in modalità manuale
  • Rimozione di cancelDelay e delayUpdate al posto di setDelay
  • Basta con versionName nel set
  • Cambia version chiave, che in quasi tutte le funzioni era restituita come oggetto BundleInfo
interface BundleInfo {
id: string;
version: string;
downloaded: string;
status: 'success' | 'error' | 'pending' | 'downloading'
}
  • Rinominati ora i nomi fuorvianti (anche se spiegarlo può non essere chiaro, all'uso il nuovo nome è facile da capire):
    • quello che veniva chiamato version ora si riferisce a bundle
    • id fai riferimento al vecchio version che era una stringa casuale di 10 caratteri, questa id è l'unico modo affidabile e univoco per accedere ai tuoi bundle, ad esempio 7Dfcd2RedN.
    • version fai ora riferimento a versionName che scegli per un bundle, ad esempio 1.0.0
  • updateUrl passa da get a post, dato che gli header personalizzati erano un problema per alcuni di voi e la POST è più logica, tutti gli header precedenti passano al body e il prefisso cap_ scompaiono.
  • versionName metodo è stato eliminato, a favore di getId
  • list restituisce ora una lista di BundleInfo
  • Rinomina getId nella getDeviceId
  • autoUpdate diventa true di default; se usi la modalità Manual, impostalo su false.
  • Metodo getLatest, questo metodo ti permette di ottenere dal tuo server configurato con updateUrl l'ultima versione disponibile.
  • Metodo setDelay che prendono {tipo: “background” | “kill” | “nativeVersion” | “date”, valore? : string} come argomento per impostare il delay in diverse modalità.
  • Metodo next, per impostare la versione al prossimo passaggio in background, a differenza di set che lo fanno istantaneamente.
  • Metodo isAutoUpdateEnabled, per informarti se ti trovi in un contesto di auto-update
  • Evento downloadComplete quando il download raggiunge il 100%
  • Campo obbligatorio aggiunto version nel metodo download
  • notifyAppReady diventa obbligatorio anche in modalità manuale; se non viene chiamato dopo 10 secondi, l'app torna alla versione precedente.

@lincolnthree Grazie mille per aver avviato questo lavoro, era impossibile far funzionare questo aggiornamento senza di te.

Se stai usando Da V3 a V4 per pianificare la distribuzione di live update, collegalo a Live Updates di Capgo per il workflow del prodotto in Capgo Live Updates, Panoramica per i dettagli di implementazione nell'Overview, Funzionalità per i dettagli implementativi in Features, Comportamento degli aggiornamenti per i dettagli implementativi in Update Behavior, e Tipi di aggiornamento per i dettagli di implementazione in Tipi di aggiornamento.