Da V3 a V4
Perché questo aggiornamento
Dopo molte discussioni nella community Discord con voi ho scoperto che la modalità manuale era troppo manuale e non sicura da usare, per esempio, il ripristino automatico non era possibile, quindi se l’aggiornamento falliva in modalità manuale l’utente doveva rimuovere l’app e reinstallarla, il che è una terribile esperienza utente
Nel frattempo, ho colto questa opportunità per darvi più libertà e rimuovere tutto il codice mal fatto
Installazione
npm i @capgo/capacitor-updater@4
Auto-aggiornamento cloud
Se usi l’esempio base nella tua app, puoi migrare in sicurezza alla nuova versione, buon divertimento!
Auto-aggiornamento self-hosted
Per te, ancora semplice, i cambiamenti sono:
- Il nome dell’impostazione da
autoUpdateUrlaupdateUrl - Il metodo dell’endpoint è cambiato da
GETaPOST
Utenti manuali
Per voi, questo è il cambiamento più significativo, ma per il meglio! Ottenete tonnellate di miglioramenti, leggete attentamente
Cambiamenti
autoUpdateUrldiventaupdateUrldato che questa impostazione può essere usata anche in modalità manuale ora- Eliminazione di
cancelDelayedelayUpdatein favore disetDelay - Non più
versionNamein set - Cambio della chiave
version, che veniva restituita nella maggior parte delle funzioni all’oggettoBundleInfo
interface BundleInfo { id: string; version: string; downloaded: string; status: 'success' | 'error' | 'pending' | 'downloading'}- Rinominati i nomi fuorvianti (anche se la spiegazione non può essere chiara, ma nell’uso è facile capire il nuovo):
- quello che era chiamato
versionora si riferisce a unbundle idsi riferisce alla vecchiaversionche era una stringa casuale di 10 caratteri, questoidè l’unico modo affidabile e univoco per accedere ai tuoi bundle, esempio7Dfcd2RedNversionsi riferisce ora alversionNameche scegli per un bundle, esempio100
- quello che era chiamato
updateUrlpassa dagetapost, poiché gli header personalizzati erano un problema per alcuni di voi e post è più logico, tutti i precedenti header vanno nel body e il prefissocap_scompare- Il metodo
versionNameè eliminato, in favore digetId - list restituisce ora una lista di
BundleInfo - Rinomina
getIdingetDeviceId autoUpdatediventa true di default, se usi la modalità Manual, impostalo su false
Novità
- Metodo
getLatest, questo metodo ti permette di ottenere dal tuo server impostato conupdateUrll’ultima versione disponibile - Metodo
setDelayche prende{kind: "background" | "kill" | "nativeVersion" | "date", value?: string}come argomento per impostare il ritardo per diverse modalità - Metodo
next, per impostare la versione al prossimo backgrounding, in opposizione asetche lo fa istantaneamente - Metodo
isAutoUpdateEnabled, per farti sapere se sei in un contesto di auto-aggiornamento - Evento
downloadCompletequando il download raggiunge il 100% - Aggiunto campo obbligatorio
versionnel metodo download notifyAppReadydiventa obbligatorio anche in modalità manuale, se non viene chiamato dopo 10 secondi l’app torna alla versione precedente
Collaboratori
@lincolnthree Grazie mille per aver iniziato questo lavoro, era impossibile far funzionare questo aggiornamento senza di te