Aggiornamento di Electron API Reference
Copia una riga 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'applicazione. Conferma il caricamento del bundle 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 | Richiesto | Descrizione |
|---|---|---|---|
url | stringa | Sì | URL per scaricare il bundle da |
version | stringa | Sì | Identificatore di versione per il bundle |
checksum | string | No | Checksum SHA256 per verifica |
sessionKey | string | No | Chiave di sessione per pacchetti crittografati |
Restituisce: BundleInfo oggetto con id, version, status
next(options)
Sezione intitolata “next(options)”Inserisci un pacchetto nella coda per il caricamento alla prossima riavvio dell'applicazione.
await updater.next({ id: 'bundle-id' });Parametri:
| Opzione | Tipo | Richiesto | Descrizione |
|---|---|---|---|
id | stringa | Sì | ID della suite di bundle da cui caricare |
set(options)
Sezione intitolata “set(options)”Passare immediatamente a una suite di bundle e ricaricare l'applicazione.
await updater.set({ id: 'bundle-id' });Parametri:
| Opzione | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
id | stringa | Sì | ID bundle da attivare |
Ricarica manualmente l'applicazione con il bundle corrente.
await updater.reload();elimina(options)
Sezione intitolata “elimina(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)
Sottosezione 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 anziché alla versione predefinita. |
Informazioni sul bundle
Sezione intitolata “Informazioni sul bundle”current()
Sezione intitolata “current()”Ottenere 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)”Elencare tutti i bundle scaricati.
const bundles = await updater.list();// [{ id, version, status, downloaded, checksum }, ...]getNextBundle()
Sezione intitolata “getNextBundle()”Riavvia il bundle per il prossimo riavvio.
const next = await updater.getNextBundle();// { id, version, status } or nullgetFailedUpdate()
Sezione intitolata “getFailedUpdate()”Ottenere 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()”Ottenere la versione consegnata con il binario dell'applicazione.
const version = await updater.getBuiltinVersion();// '1.0.0'Verifica degli aggiornamenti
Sezione intitolata “Verifica degli aggiornamenti”ottenereL'ultima(opzioni)
Sottosezione intitolata “ottenereL'ultima(opzioni)”Controlla il server per la versione disponibile più recente.
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);}Restituisce:
| Proprietà | Tipo | Descrizione |
|---|---|---|
url | stringa | URL di download (vuoto se non è disponibile alcuna versione aggiornata) |
version | stringa | Versione disponibile |
checksum | string | Checksum SHA256 |
sessionKey | string | Chiave di sessione di crittografia |
error | string | Messaggio di errore se il controllo fallisce |
message | string | Messaggio del server |
Gestione dei canali
Sezione intitolata “Gestione dei canali”setChannel(options)
Sezione intitolata “setChannel(options)”Assegna il dispositivo a un canale specifico.
await updater.setChannel({ channel: 'beta' });unsetChannel(options)
Sezione intitolata “unsetChannel(options)”Rimuovi l'assegnazione del canale e utilizza il valore predefinito.
await updater.unsetChannel();getChannel()
Sezione intitolata “getChannel()”Ottieni l'assegnamento del canale corrente.
const channel = await updater.getChannel();// { channel: 'production', status: 'set' }listChannels()
Sezione intitolata “listChannels()”Elencare 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) | Aspetta che l'app venga messa in background |
kill | - | Aspetta che l'app venga uccisa e riavviata |
date | Stringa di data ISO | Aspetta fino a una specifica data/ora |
nativeVersion | Stringa di versione | Aspetta l'aggiornamento dell'app nativa |
cancelDelay()
Sottosezione 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' });setStatsUrl(options)
Sezione intitolata “setStatsUrl(options)”Cambia l'URL di reporting delle statistiche.
await updater.setStatsUrl({ url: 'https://my-server.com/stats' });impostaUrlCanale(options)
Sezione intitolata “impostaUrlCanale(options)”Cambia l'URL di gestione del canale.
await updater.setChannelUrl({ url: 'https://my-server.com/channel' });impostaIdApp(options)
Sezione intitolata “impostaIdApp(options)”Cambia l'ID dell'applicazione in esecuzione.
await updater.setAppId({ appId: 'com.example.newapp' });ottieneIdApp()
Sottosezione intitolata “ottieneIdApp()”Ottenere l'ID App corrente.
const appId = await updater.getAppId();impostaMenuDebug(options)
Sottosezione intitolata “impostaMenuDebug(options)”Abilita o disabilita il menu di debug.
await updater.setDebugMenu({ enabled: true });èAbilitatoMenuDebug()
Sottosezione intitolata “èAbilitatoMenuDebug()”Verifica se il menu di debug è abilitato.
const enabled = await updater.isDebugMenuEnabled();Ascolta gli eventi di aggiornamento utilizzando addListener:
updater.addListener('eventName', (event) => { // Handle event});Gli eventi disponibili
Sottosezione intitolata “Gli eventi disponibili”| Evento | Pacco di dati | Descrizione |
|---|---|---|
download | { percent, status } | Aggiorna il progresso del download |
updateAvailable | { bundle } | Aggiornamento disponibile |
noNeedUpdate | { message } | Già aggiornato |
downloadComplete | { bundle } | Download completato con successo |
downloadFailed | { bundle, error } | Download fallito |
breakingAvailable | { bundle } | Aggiornamento incompatibile (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”Tutte le opzioni di configurazione 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 il dashboard e le 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.