Riferimento a Electron Updater API
Copia un prompt di configurazione con le istruzioni di installazione e la guida markdown completa per questo plugin.
Questa pagina documenta tutte le disponibili metodi, eventi e opzioni di configurazione per l'aggiornatore di Electron.
Metodi di base
Sezione intitolata “Metodi di base”notifyAppReady()
notifyAppReady()Deve essere chiamata ad ogni avvio dell'applicazione. Conferma che il pacchetto è 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 da cui scaricare il bundle |
version | stringa | Sì | Identificatore di versione per il bundle |
checksum | stringa | No | Checksum SHA256 per la verifica |
sessionKey | stringa | No | Chiave di sessione per i bundle crittografati |
Ritorna: BundleInfo oggetto con id, version, status
next(options)
Sezione intitolata “next(options)”Coda una bundle per il caricamento alla prossima riavviatura dell'applicazione.
await updater.next({ id: 'bundle-id' });Parametri:
| Opzione | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
id | stringa | Sì | ID della bundle da codificare |
set(options)
Sezione intitolata “set(options)”Passa immediatamente a un bundle e ricarica l'applicazione.
await updater.set({ id: 'bundle-id' });Parametri:
| Opzione | Tipo | Richiesto | Descrizione |
|---|---|---|---|
id | stringa | Sì | ID del bundle da attivare |
reload()
Sezione intitolata “reload()”Ricarica manualmente l'applicazione con il bundle corrente.
await updater.reload();delete(options)
Sezione intitolata “delete(options)”Cancella un bundle dallo storage.
await updater.delete({ id: 'bundle-id' });Parametri:
| Opzione | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
id | stringa | Sì | ID pacchetto da eliminare |
reset(options)
Sezione intitolata “reset(options)”Ripristina 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, resettare al bundle di successo più recente al posto del predefinito |
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 pacchetto in coda per il prossimo riavvio.
const next = await updater.getNextBundle();// { id, version, status } or nullgetFailedUpdate()
Sezione intitolata “getFailedUpdate()”Ottieni informazioni sull'ultima aggiornamento fallito (utile per i rollback di debug).
const failed = await updater.getFailedUpdate();// { id, version, reason } or nullgetBuiltinVersion()
Sezione intitolata “getBuiltinVersion()”Ottieni la versione spedita con il file binario dell'applicazione.
const version = await updater.getBuiltinVersion();// '1.0.0'Controllo Aggiornamento
Sezione intitolata “Controllo Aggiornamento”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 un aggiornamento) |
version | string | Version disponibile |
checksum | string | Checksum SHA256 |
sessionKey | string | Chiave di sessione di cifratura |
error | string | Messaggio di errore se il controllo fallisce |
message | string | Messaggio del server |
Gestione del canale
Sottosezione intitolata “Gestione del canale”Assegna il dispositivo a un canale specifico.
Sezione intitolata “Assegna il dispositivo a un canale specifico.”Copia nel portapenni
await updater.setChannel({ channel: 'beta' });Sezione intitolata “Rimuovi l'assegnazione del canale e utilizza il valore predefinito.”
Copia nel portapenniOttieni l'assegnazione del canale corrente.
await updater.unsetChannel();Copia nel portapenni
__CAPGO_KEEP_0____CAPGO_KEEP_1__
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”Controllare quando gli aggiornamenti scaricati vengono applicati.
setMultiDelay(options)
Sezione intitolata “setMultiDelay(options)”Impostare 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()”Elimina tutte le condizioni di ritardo e applica l'aggiornamento immediatamente alla prossima verifica.
await updater.cancelDelay();Identificazione del dispositivo
Sottosezione intitolata “Identificazione del dispositivo”getDeviceId()
Sottosezione intitolata “getDeviceId()”Ottieni l'identificatore univoco del dispositivo.
const deviceId = await updater.getDeviceId();// 'uuid-xxxx-xxxx-xxxx'setCustomId(options)
Sottosezione 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' });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 App corrente.
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 eventi di aggiornamento utilizzando addListener:
updater.addListener('eventName', (event) => { // Handle event});Eventi disponibili
Sezione intitolata “Eventi disponibili”| Evento | Pacco di dati | Descrizione |
|---|---|---|
download | { percent, status } | Aggiornamenti di progresso del download |
updateAvailable | { bundle } | Aggiornamento nuovo 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 } | Fallito l'installazione dell'aggiornamento |
appReloaded | {} | L'app è stata riavviata |
appReady | {} | notifyAppReady() è stato chiamato |
Esempio: Gestione completa degli eventi
Sottosezione 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 il dashboard e le API operazioni, connettilo con Utilizzando @capgo/electron-updater per la capacità nativa in Utilizzando @capgo/electron-updater, API Panoramica per i dettagli di implementazione in API Panoramica 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.