Electron Updater API Referenz
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses Plugin.
Diese Seite dokumentiert alle verfügbaren Methoden, Events und Konfigurationsoptionen für den Electron Updater.
Kernmethoden
Abschnitt mit dem Titel „Kernmethoden“notifyAppReady()
Abschnitt „notifyAppReady()“Muss bei jedem App-Start aufgerufen werden. Bestätigt, dass das Bundle erfolgreich geladen wurde, und verhindert einen automatischen Rollback.
await updater.notifyAppReady();download(options)
Abschnitt mit dem Titel „download(options)“Lädt ein Bundle von einer URL herunter.
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});Parameter:
| Option | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
url | string | Ja | URL zum Download des Bundles |
version | string | Ja | Versionsbezeichner für das Bundle |
checksum | string | Nein | SHA256-Checksumme zur Verifizierung |
sessionKey | string | Nein | Session-Schlüssel für verschlüsselte Bundles |
Rückgabe: BundleInfo object mit id, version, status
next(options)
Abschnitt mit dem Titel „next(options)“Queue a bundle to be loaded on next app restart.
await updater.next({ id: 'bundle-id' });Parameter:
| Option | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | string | Ja | Bundle ID für die Warteschlange |
set(options)
Abschnitt mit dem Titel „set(options)“Sofort zu einem Bundle wechseln und die App neu laden.
await updater.set({ id: 'bundle-id' });Parameter:
| Option | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | string | Ja | Bundle-ID zum Aktivieren |
Lädt die App manuell mit dem aktuellen Bundle neu.
await updater.reload();delete(options)
Abschnitt mit dem Titel „delete(options)“Löscht ein Bundle aus dem Speicher.
await updater.delete({ id: 'bundle-id' });Parameter:
| Option | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | string | Ja | Bundle ID zum Löschen |
reset(options)
Abschnitt mit dem Titel „reset(options)“Zurücksetzen auf die eingebaute Version oder das letzte erfolgreiche Bundle.
// Reset to builtinawait updater.reset({ toLastSuccessful: false });
// Reset to last successful bundleawait updater.reset({ toLastSuccessful: true });Parameter:
| Option | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
toLastSuccessful | boolean | Nein | If true, reset to last successful bundle instead of builtin |
Bundle-Informationen
Abschnitt mit dem Titel „Bundle-Informationen“current()
Abschnitt mit dem Titel „current()“Ruft Informationen zum aktuellen Bundle und der nativen Version ab.
const info = await updater.current();// { bundle: { id, version, status }, native: '1.0.0' }list(options)
Abschnitt mit dem Titel „list(options)“Listet alle heruntergeladenen Bundles auf.
const bundles = await updater.list();// [{ id, version, status, downloaded, checksum }, ...]getNextBundle()
Abschnitt mit dem Titel „getNextBundle()“Ruft das für den nächsten Neustart eingereihte Bundle ab.
const next = await updater.getNextBundle();// { id, version, status } or nullgetFailedUpdate()
Abschnitt mit dem Titel „getFailedUpdate()“Ruft Informationen zum letzten fehlgeschlagenen Update ab (nützlich zum Debuggen von Rollbacks).
const failed = await updater.getFailedUpdate();// { id, version, reason } or nullgetBuiltinVersion()
Abschnitt mit dem Titel „getBuiltinVersion()“Ruft die Version ab, die mit der App-Binary ausgeliefert wurde.
const version = await updater.getBuiltinVersion();// '1.0.0'Update-Prüfung
Abschnitt mit dem Titel „Update-Prüfung“getLatest(options)
Abschnitt mit dem Titel „getLatest(options)“Fragt den Server nach der neuesten verfügbaren Version ab.
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);}Rückgabe:
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
url | string | Download-URL (leer, wenn kein Update) |
version | string | Verfügbare Version |
checksum | string | SHA256-Prüfsumme |
sessionKey | string | Verschlüsselungssitzungsschlüssel |
error | string | Fehlermeldung, wenn die Prüfung fehlgeschlagen ist |
message | string | Servermeldung |
Channel-Management
Abschnitt mit dem Titel „Channel Management“setChannel(options)
Abschnitt mit dem Titel „setChannel(options)“Weist das Gerät einem bestimmten Channel zu.
await updater.setChannel({ channel: 'beta' });unsetChannel(options)
Abschnitt mit dem Titel „unsetChannel(options)“Kanalzuweisung entfernen und Standard verwenden.
await updater.unsetChannel();getChannel()
Abschnitt mit dem Titel „getChannel()“Aktuelle Kanalzuweisung abrufen.
const channel = await updater.getChannel();// { channel: 'production', status: 'set' }listChannels()
Abschnitt mit dem Titel „listChannels()“Alle verfügbaren Kanäle für diese App auflisten.
const channels = await updater.listChannels();// ['production', 'beta', 'staging']Delay-Bedingungen
Abschnitt mit dem Titel „Delay Conditions“Steuern Sie, wann heruntergeladene Updates angewendet werden.
setMultiDelay(options)
Abschnitt mit dem Titel „setMultiDelay(options)“Legen Sie Bedingungen fest, die erfüllt sein müssen, bevor ein Update angewendet wird.
// 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' } ]});Typen von Delay Conditions:
| Typ | Wert | Beschreibung |
|---|---|---|
background | Optionale Dauer (ms) | Warten, bis die App im Hintergrund ist |
kill | - | Warten, bis die App beendet und neu gestartet wird |
date | ISO-Datumszeichenkette | Bis zu einem bestimmten Datum/Zeit warten |
nativeVersion | Versionszeichenkette | Auf native App-Updates warten |
cancelDelay()
Abschnitt mit dem Titel „cancelDelay()“Alle Verzögerungsbedingungen löschen und das Update beim nächsten Check sofort anwenden.
await updater.cancelDelay();Geräteidentifikation
Abschnitt mit dem Titel „Geräteidentifikation“getDeviceId()
Abschnitt „getDeviceId()“Ruft die eindeutige Geräte-ID ab.
const deviceId = await updater.getDeviceId();// 'uuid-xxxx-xxxx-xxxx'setCustomId(options)
Abschnitt „setCustomId(options)“Legt eine benutzerdefinierte ID für das Gerät fest (nützlich für Analytics).
await updater.setCustomId({ customId: 'user-123' });Konfiguration
Abschnitt „Konfiguration“setUpdateUrl(options)
Abschnitt „setUpdateUrl(options)“Ändert die Update-Server-URL zur Laufzeit.
await updater.setUpdateUrl({ url: 'https://my-server.com/updates' });setStatsUrl(options)
Abschnitt mit dem Titel „setStatsUrl(options)“Ändert die URL für die Statistik-Übermittlung.
await updater.setStatsUrl({ url: 'https://my-server.com/stats' });setChannelUrl(options)
Abschnitt mit dem Titel „setChannelUrl(options)“Ändert die URL für das Channel-Management.
await updater.setChannelUrl({ url: 'https://my-server.com/channel' });setAppId(options)
Abschnitt mit dem Titel „setAppId(options)“Ändert die App-ID zur Laufzeit.
await updater.setAppId({ appId: 'com.example.newapp' });getAppId()
Abschnitt mit dem Titel „getAppId()“Ruft die aktuelle App-ID ab.
const appId = await updater.getAppId();Debuggen
Abschnitt mit dem Titel „Debug“setDebugMenu(options)
Abschnitt mit dem Titel „setDebugMenu(options)“Aktiviert oder deaktiviert das Debug-Menü.
await updater.setDebugMenu({ enabled: true });isDebugMenuEnabled()
Abschnitt mit dem Titel „isDebugMenuEnabled()“Prüft, ob das Debug-Menü aktiviert ist.
const enabled = await updater.isDebugMenuEnabled();Events
Abschnitt „Events“Update-Events abhören mit addListener:
updater.addListener('eventName', (event) => { // Handle event});Verfügbare Events
Abschnitt „Verfügbare Events“| Event | Payload | Beschreibung |
|---|---|---|
download | { percent, status } | Updates zum Download-Fortschritt |
updateAvailable | { bundle } | Neues Update verfügbar |
noNeedUpdate | { message } | Bereits auf dem neuesten Stand |
downloadComplete | { bundle } | Download erfolgreich abgeschlossen |
downloadFailed | { bundle, error } | Download fehlgeschlagen |
breakingAvailable | { bundle } | Inkompatibles Update verfügbar (erfordert natives Update) |
updateFailed | { bundle, reason } | Update-Installation fehlgeschlagen |
appReloaded | {} | App wurde neu geladen |
appReady | {} | notifyAppReady() wurde aufgerufen |
Beispiel: Vollständiges Event-Handling
Abschnitt mit dem Titel „Beispiel: Vollständige Event-Verarbeitung“// 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);});Constructor-Optionen
Abschnitt mit dem Titel „Konstruktor-Optionen“Alle Konfigurationsoptionen für 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)});Weiter geht's mit der Electron Updater API Referenz
Abschnitt mit dem Titel „Weiter von Electron Updater API Referenz“Wenn du es nutzt Electron Updater API Referenz um Dashboard- und API-Operationen zu planen, verbinde es mit @capgo/electron-updater verwenden für die native Funktionalität bei „@capgo/electron-updater verwenden“, API Übersicht für Details zur Implementierung im API Overview, Einführung für die Implementierungsdetails in der Einleitung, API Schlüssel für das Implementierungsdetail in API Keys und Geräte für das Implementierungsdetail in Devices.