Zum Inhalt springen

Referenz zu Electron Updater API

Diese Seite dokumentiert alle verfügbaren Methoden, Ereignisse und Konfigurationsoptionen für den Electron Updater.

Bei jedem App-Start aufzurufen. Bestätigt, dass die Bundle erfolgreich geladen wurden und verhindert automatische Rollbacks.

await updater.notifyAppReady();

Ein Bundle von einer URL herunterladen.

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:

OptionTypErforderlichBeschreibung
urlstringJaURL, von der das Bundle heruntergeladen werden soll
versionstringJaVersionen-Bezeichner für das Bundle
checksumZeichenketteNeinSHA256-Prüfsumme zur Verifizierung
sessionKeyZeichenketteNeinSitzungschlüssel für verschlüsselte Bundle

Rückgabewert: BundleInfo Objekt mit id, version, status

Eine Bundle-Instanz zum Laden bei der nächsten App-Neustart anwählen.

await updater.next({ id: 'bundle-id' });

Parameter:

OptionTypErforderlichBeschreibung
idstringJaBundle-ID zum Anwählen

Schnell zu einem Bundle wechseln und die App neu laden.

await updater.set({ id: 'bundle-id' });

Parameter:

OptionTypErforderlichBeschreibung
idstringJaBundle-ID zum Aktivieren

Manuell die App mit der aktuellen Bundle neu laden.

await updater.reload();

Ein Bundle aus dem Speicher löschen.

await updater.delete({ id: 'bundle-id' });

Parameter:

OptionTypErforderlichBeschreibung
idZeichenfolgeJaBundle-ID zum Löschen

Zurücksetzen auf die Standardversion oder die letzte erfolgreiche Bundle.

// Reset to builtin
await updater.reset({ toLastSuccessful: false });
// Reset to last successful bundle
await updater.reset({ toLastSuccessful: true });

Parameter:

OptionTypErforderlichBeschreibung
toLastSuccessfulbooleanNeinWenn wahr, zurücksetzen Sie auf die letzte erfolgreiche Bundle anstatt auf das Builtin

Informationen über das aktuelle Bundle und die native Version erhalten.

const info = await updater.current();
// { bundle: { id, version, status }, native: '1.0.0' }

Alle heruntergeladenen Bundles auflisten.

const bundles = await updater.list();
// [{ id, version, status, downloaded, checksum }, ...]

Holen Sie sich die für das nächste Neustarten angespielte Bundle.

const next = await updater.getNextBundle();
// { id, version, status } or null

Informationen über den letzten fehlgeschlagenen Update-Vorgang (wirksam für Debugging von Rollbacks) holen.

const failed = await updater.getFailedUpdate();
// { id, version, reason } or null

Holen Sie sich die Version, die mit der App-Binary geliefert wurde.

const version = await updater.getBuiltinVersion();
// '1.0.0'

Aktualisierungsprüfung

Abschnitt: Aktualisierungsprüfung

Überprüfe den Server auf die neueste verfügbare Version.

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ückgabewert:

EigenschaftTypBeschreibung
urlstringHerunterladungs-URL (leer, wenn keine Aktualisierung)
versionstringVerfügbare Version
checksumstringSHA256-Prüfsumme
sessionKeystringVerschlüsselungssitzungsschlüssel
errorstringFehlermeldung bei fehlgeschlagener Überprüfung
messagestringServernachricht

Gerät einer bestimmten Kanal zuzuweisen.

await updater.setChannel({ channel: 'beta' });

Kanalzuweisung aufheben und Standard verwenden.

await updater.unsetChannel();

Aktuelle Kanalzuweisung abrufen.

const channel = await updater.getChannel();
// { channel: 'production', status: 'set' }

Liste aller verfügbaren Kanäle für diese App.

const channels = await updater.listChannels();
// ['production', 'beta', 'staging']

Bestimmen Sie, wann heruntergeladene Updates angewendet werden.

Legen Sie Bedingungen fest, die erfüllt sein müssen, bevor ein Update angewendet wird.

// Wait for app to be backgrounded
await updater.setMultiDelay({
delayConditions: [{ kind: 'background' }]
});
// Wait until specific date
await updater.setMultiDelay({
delayConditions: [{ kind: 'date', value: '2024-12-25T00:00:00Z' }]
});
// Wait for app to be killed and restarted
await 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' }
]
});

Verzögerungsbedingungstypen:

ArtWertBeschreibung
backgroundOptional Dauer (ms)Warten, bis die App in den Hintergrund geschoben wird
kill-Warten, bis die App beendet und neu gestartet wird
dateISO-DatumszeichenfolgeWarten, bis eine bestimmte Uhrzeit
nativeVersionVersionszeichenfolgeWarten, bis die native App aktualisiert wird

Abschnitt mit dem Titel “cancelDelay()”

cancelDelay()

Alle Verzögerungsbedingungen löschen und Update sofort auf nächsten Check anwenden.

await updater.cancelDelay();

Ermitteln Sie die eindeutige Geräteidentifikation.

const deviceId = await updater.getDeviceId();
// 'uuid-xxxx-xxxx-xxxx'

Setzen Sie eine benutzerdefinierte Identifikation für das Gerät (nützlich für Analysen).

await updater.setCustomId({ customId: 'user-123' });

Die Update-Server-URL ändern Sie während der Ausführung.

await updater.setUpdateUrl({ url: 'https://my-server.com/updates' });

Ändern Sie die URL für die Statistikberichterstattung.

await updater.setStatsUrl({ url: 'https://my-server.com/stats' });

Ändern Sie die URL für die Kanalverwaltung.

await updater.setChannelUrl({ url: 'https://my-server.com/channel' });

Ändern Sie den App-ID während der Ausführung.

await updater.setAppId({ appId: 'com.example.newapp' });

Aktuelle App-ID abrufen.

const appId = await updater.getAppId();

Debug-Menü aktivieren oder deaktivieren.

await updater.setDebugMenu({ enabled: true });

Überprüfen Sie, ob das Debug-Menü aktiviert ist.

const enabled = await updater.isDebugMenuEnabled();

Hören Sie mit dem Update-Ereignis über addListener:

updater.addListener('eventName', (event) => {
// Handle event
});
EreignisPayloadBeschreibung
download{ percent, status }Download-Progress-Updates
updateAvailable{ bundle }Neue Aktualisierung verfügbar
noNeedUpdate{ message }Aktuell auf dem neuesten Stand
downloadComplete{ bundle }Herunterladen erfolgreich abgeschlossen
downloadFailed{ bundle, error }Herunterladen fehlgeschlagen
breakingAvailable{ bundle }Inkompatible Aktualisierung verfügbar (erfordert native Aktualisierung)
updateFailed{ bundle, reason }Aktualisierungsinstallation fehlgeschlagen
appReloaded{}App wurde neu geladen
appReady{}notifyAppReady() wurde aufgerufen
// Progress tracking
updater.addListener('download', (event) => {
updateProgressBar(event.percent);
});
// Update available notification
updater.addListener('updateAvailable', (event) => {
showNotification(`Update ${event.bundle.version} available!`);
});
// Handle completion
updater.addListener('downloadComplete', async (event) => {
// Queue for next restart
await updater.next({ id: event.bundle.id });
showNotification('Update will apply on next restart');
});
// Handle failures
updater.addListener('updateFailed', (event) => {
console.error('Update failed:', event.reason);
reportError(event);
});

Vollständige 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)
});

Wenn Sie Electron Updater __CAPGO_KEEP_0__ Referenz verwenden Elektron Updater API Referenz um das Dashboard und API-Operationen zu planen, verbinden Sie es mit Mit @capgo/electron-updater für die native Fähigkeit in Mit @capgo/electron-updater, API Übersicht für die Implementierungsdetails in API Übersicht, Einführung für die Implementierungsdetails in Einführung, API Schlüssel für die Implementierungsdetails in API Schlüssel, und Geräte für die Implementierungsdetails in Geräte.