Riferimento a Electron Updater API
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Questa pagina documenta tutte le metodologie, gli eventi e le opzioni di configurazione disponibili per l'Aggiornatore di Electron.
Metodi di base
Sezione intitolata “Metodi di base”notifyAppReady()
Sezione intitolata “notifyAppReady()”Deve essere chiamata ad ogni avvio dell'app. Conferma che il bundle è stato caricato con successo e impedisce il rollback automatico.
await updater.notifyAppReady();download(options)
Sezione intitolata “download(options)”Scarica un bundle da una URL.
const bundle = await updater.download({ url: 'https://example.com/bundle.zip', version: '1.0.1', checksum: 'sha256-hash', // Optional but recommended sessionKey: '...', // For encrypted bundles});Parametri:
| Opzione | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
url | stringa | Sì | URL per scaricare il bundle da |
version | stringa | Sì | Identificatore di versione per il bundle |
checksum | stringa | No | Checksum SHA256 per verifica |
sessionKey | string | No | Chiave di sessione per pacchetti crittografati |
Returns: BundleInfo oggetto con id, version, status
next(options)
Sezione intitolata “next(options)”Coda un pacchetto per il caricamento successivo all'avvio dell'app.
await updater.next({ id: 'bundle-id' });Parametri:
| Opzione | Tipo | Richiesto | Descrizione |
|---|---|---|---|
id | string | Sì | ID del bundle per la coda |
set(options)
Sezione intitolata “set(options)”Passa immediatamente a un bundle e ricarica l'app.
await updater.set({ id: 'bundle-id' });Parametri:
| Opzione | Tipo | Richiesto | Descrizione |
|---|---|---|---|
id | string | Sì | ID del pacchetto per l'attivazione |
reload()
Sezione intitolata “reload()”Ricarica manualmente l'applicazione con il pacchetto corrente.
await updater.reload();delete(options)
Sezione intitolata “delete(options)”Elimina un bundle dallo storage.
await updater.delete({ id: 'bundle-id' });Parametri:
| Opzione | Tipo | Richiesto | Descrizione |
|---|---|---|---|
id | string | Sì | ID bundle da eliminare |
reset(options)
Sezione intitolata “reset(options)”Resetta alla versione predefinita o all'ultimo bundle riuscito.
// Reset to builtinawait updater.reset({ toLastSuccessful: false });
// Reset to last successful bundleawait updater.reset({ toLastSuccessful: true });Parametri:
| Opzione | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
toLastSuccessful | booleano | No | Se vero, resetta all'ultimo bundle riuscito al posto della versione predefinita |
Informazioni sul bundle
Sezione intitolata “Informazioni sul bundle”current()
Sezione intitolata “current()”Ottieni informazioni sul bundle corrente e sulla versione nativa.
const info = await updater.current();// { bundle: { id, version, status }, native: '1.0.0' }list(options)
Sezione intitolata “list(options)”Elenco di tutti i bundle scaricati.
const bundles = await updater.list();// [{ id, version, status, downloaded, checksum }, ...]getNextBundle()
Sezione intitolata “getNextBundle()”Ottieni il bundle programmato per il prossimo riavvio.
const next = await updater.getNextBundle();// { id, version, status } or nullgetFailedUpdate()
Sezione intitolata “getFailedUpdate()”Ottieni informazioni sull'aggiornamento fallito più recente (utile per la debuggazione dei rollback).
const failed = await updater.getFailedUpdate();// { id, version, reason } or nullgetBuiltinVersion()
Sezione intitolata “getBuiltinVersion()”Ottieni la versione consegnata con il binario dell'applicazione.
const version = await updater.getBuiltinVersion();// '1.0.0'Controllo Aggiornamenti
Sezione intitolata “Controllo Aggiornamenti”getLatest(options)
Sezione intitolata “getLatest(options)”Controlla il server per la versione più recente disponibile.
const latest = await updater.getLatest();
if (latest.url && !latest.error) { // Update available console.log('New version:', latest.version); console.log('Download URL:', latest.url);} else if (latest.error) { console.error('Error checking updates:', latest.error);}Ritorna:
| Proprietà | Tipo | Descrizione |
|---|---|---|
url | stringa | URL di download (vuoto se non è disponibile alcuna versione aggiornata) |
version | stringa | Versione disponibile |
checksum | stringa | Checksum SHA256 |
sessionKey | string | Chiave di sessione di crittografia |
error | string | Messaggio di errore se il controllo non riuscito |
message | string | Messaggio del server |
Gestione dei canali
Sezione intitolata “Gestione dei canali”impostaCanale(opzioni)
Sezione intitolata “impostaCanale(opzioni)”Assegna il dispositivo a un canale specifico.
await updater.setChannel({ channel: 'beta' });unsetChannel(options)
Sezione intitolata “unsetChannel(options)”Elimina l'assegnazione del canale e utilizza il valore predefinito.
await updater.unsetChannel();getChannel()
Sezione intitolata “getChannel()”Ottieni l'assegnazione del canale attuale.
const channel = await updater.getChannel();// { channel: 'production', status: 'set' }listChannels()
Sezione intitolata “listChannels()”Elenco tutti i canali disponibili per questa app.
const channels = await updater.listChannels();// ['production', 'beta', 'staging']Condizioni di ritardo
Sezione intitolata “Condizioni di ritardo”Controlla quando vengono applicate le aggiornamenti scaricati.
setMultiDelay(options)
Sezione intitolata “setMultiDelay(options)”Imposta le condizioni che devono essere soddisfatte prima di applicare un aggiornamento.
// Wait for app to be backgroundedawait updater.setMultiDelay({ delayConditions: [{ kind: 'background' }]});
// Wait until specific dateawait updater.setMultiDelay({ delayConditions: [{ kind: 'date', value: '2024-12-25T00:00:00Z' }]});
// Wait for app to be killed and restartedawait updater.setMultiDelay({ delayConditions: [{ kind: 'kill' }]});
// Multiple conditions (all must be met)await updater.setMultiDelay({ delayConditions: [ { kind: 'background' }, { kind: 'date', value: '2024-12-25T00:00:00Z' } ]});Tipi di condizioni di ritardo:
| Tipo | Valore | Descrizione |
|---|---|---|
background | Durata facoltativa (ms) | Attendere che l'app venga messa in background |
kill | - | Attendere che l'app venga uccisa e riavviata |
date | Stringa di data ISO | Attendere una data/ora specifica |
nativeVersion | Stringa di versione | Attendere l'aggiornamento dell'app nativa |
cancelDelay()
Sezione intitolata “cancelDelay()”Cancella tutte le condizioni di ritardo e applica l'aggiornamento immediatamente alla prossima verifica.
await updater.cancelDelay();Identificazione del dispositivo
Sezione intitolata “Identificazione del dispositivo”getDeviceId()
Sezione intitolata “getDeviceId()”Ottieni l'identificatore univoco del dispositivo.
const deviceId = await updater.getDeviceId();// 'uuid-xxxx-xxxx-xxxx'setCustomId(options)
Sezione intitolata “setCustomId(options)”Imposta un identificatore personalizzato per il dispositivo (utile per gli analytics).
await updater.setCustomId({ customId: 'user-123' });Configurazione
Sezione intitolata “Configurazione”setUpdateUrl(options)
Sezione intitolata “setUpdateUrl(options)”Cambia l'URL del server di aggiornamento in esecuzione.
await updater.setUpdateUrl({ url: 'https://my-server.com/updates' });Sezione intitolata “setStatsUrl(options)”
Cambia l'URL di reporting delle statistiche.Copia nel portapenne
await updater.setStatsUrl({ url: 'https://my-server.com/stats' });setChannelUrl(options)
Sezione intitolata “setChannelUrl(options)”Cambia l'URL di gestione del canale.
await updater.setChannelUrl({ url: 'https://my-server.com/channel' });setAppId(options)
Sezione intitolata “setAppId(options)”Cambia l'ID dell'applicazione in esecuzione.
await updater.setAppId({ appId: 'com.example.newapp' });getAppId()
Sezione intitolata “getAppId()”Ottieni l'ID dell'app attuale.
const appId = await updater.getAppId();setDebugMenu(options)
Sezione intitolata “setDebugMenu(options)”Abilita o disabilita il menu di debug.
await updater.setDebugMenu({ enabled: true });isDebugMenuEnabled()
Sezione intitolata “isDebugMenuEnabled()”Controlla se il menu di debug è abilitato.
const enabled = await updater.isDebugMenuEnabled();Ascolta gli aggiornamenti degli eventi utilizzando addListener:
updater.addListener('eventName', (event) => { // Handle event});Eventi disponibili
Sezione intitolata “Eventi disponibili”| Evento | Payload | Descrizione |
|---|---|---|
download | { percent, status } | Aggiornamenti del progresso del download |
updateAvailable | { bundle } | Nuovo aggiornamento disponibile |
noNeedUpdate | { message } | Già aggiornato |
downloadComplete | { bundle } | Download completato con successo |
downloadFailed | { bundle, error } | Download fallito |
breakingAvailable | { bundle } | Aggiornamento incompatibile disponibile (richiede aggiornamento nativo) |
updateFailed | { bundle, reason } | Installazione dell'aggiornamento fallita |
appReloaded | {} | L'app è stata riavviata |
appReady | {} | notifyAppReady() è stato chiamato |
Esempio: Gestione completa degli eventi
Sezione intitolata “Esempio: Gestione completa degli eventi”// Progress trackingupdater.addListener('download', (event) => { updateProgressBar(event.percent);});
// Update available notificationupdater.addListener('updateAvailable', (event) => { showNotification(`Update ${event.bundle.version} available!`);});
// Handle completionupdater.addListener('downloadComplete', async (event) => { // Queue for next restart await updater.next({ id: event.bundle.id }); showNotification('Update will apply on next restart');});
// Handle failuresupdater.addListener('updateFailed', (event) => { console.error('Update failed:', event.reason); reportError(event);});Opzioni del costruttore
Sezione intitolata “Opzioni del costruttore”Opzioni di configurazione complete per ElectronUpdater:
const updater = new ElectronUpdater({ // Required appId: 'com.example.app',
// Version override version: '1.0.0', // Override builtin version detection
// Server URLs updateUrl: 'https://plugin.capgo.app/updates', channelUrl: 'https://plugin.capgo.app/channel_self', statsUrl: 'https://plugin.capgo.app/stats',
// Behavior autoUpdate: true, // Enable automatic update checks appReadyTimeout: 10000, // Milliseconds before rollback (default: 10000) autoDeleteFailed: true, // Auto-delete failed bundles autoDeletePrevious: true, // Auto-delete old bundles resetWhenUpdate: true, // Reset to builtin on native update
// Channels defaultChannel: 'production',
// Direct Update Mode directUpdate: false, // 'atInstall' | 'onLaunch' | 'always' | false
// Security publicKey: '...', // RSA public key for E2E encryption
// Dynamic Configuration allowModifyUrl: false, // Allow runtime URL changes allowModifyAppId: false, // Allow runtime App ID changes persistCustomId: false, // Persist custom ID across updates persistModifyUrl: false, // Persist URL changes
// Debug debugMenu: false, // Enable debug menu (Ctrl+Shift+D) disableJSLogging: false, // Disable console logs
// Periodic Updates periodCheckDelay: 0, // Seconds between auto-checks (0 = disabled, min 600)});Continua da Electron Updater API Reference
Sezione intitolata “Continua da Electron Updater API Reference”Se stai utilizzando Electron Updater API Reference per pianificare dashboard e API operazioni, connettilo con Utilizza @capgo/electron-updater per la capacità nativa in Utilizza @capgo/electron-updater, API Overview per i dettagli di implementazione in API Overview, Introduzione per i dettagli di implementazione in Introduzione, API Chiavi per i dettagli di implementazione in API Chiavi, e Dispositivi per i dettagli di implementazione in Dispositivi.