Zum Inhalt springen

Electron Updater API Referenz

GitHub

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

Muss bei jedem App-Start aufgerufen werden. Bestätigt, dass die Bundle erfolgreich geladen wurden und verhindert einen automatischen Rollback.

await updater.notifyAppReady();

Laden Sie 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
});

__CAPGO_KEEP_0__

OptionTypErforderlichBeschreibung
urlZeichenfolgeJaURL zum Herunterladen des Bundles
versionJaVersionenbezeichner für das Bundle__CAPGO_KEEP_1__
checksumstringNeinSHA256-Prüfsumme zur Verifizierung
sessionKeystringNeinSitzungschlüssel für verschlüsselte Bundles

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

Ein Bundle in der Warteschlange für das Laden beim nächsten App-Neustart einrichten.

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

Parameter:

OptionTypErforderlichBeschreibung
idstringJaBundle-ID, die in der Warteschlange ist

Sich sofort auf ein Bundle umschalten und die App neu laden.

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

Parameter:

OptionTypErforderlichBeschreibung
idstringJaBundle-ID zum Aktivieren

Zurücksetzen in die Zwischenablage

await updater.reload();

Einen Bundle aus dem Speicher löschen.

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

Parameter:

OptionTypVerpflichtendBeschreibung
idstringJaBundle-ID zum Löschen

Zurücksetzen auf die eingebaute Version oder die letzte erfolgreiche Paketierung.

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

Parameter:

OptionTypErforderlichBeschreibung
toLastSuccessfulbooleanNeinWenn wahr, zurücksetzen auf die letzte erfolgreiche Paketierung anstatt auf die eingebaute

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

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

Alle heruntergeladene Bundles auflisten.

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

Informationen über das nächste Bundle erhalten.

Abschnitt: "getNextBundle()"

Get die Bundle für die nächste Neustart geplant.

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

Informationen über die letzte fehlgeschlagene Aktualisierung erhalten (wird bei der Rückgängigmachung von Updates hilfreich sein).

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

Die Version, die mit der App-Binary geliefert wurde, erhalten.

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

Überprüfen Sie 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 verfügbar ist)
versionstringVerfügbare Version
checksumstringSHA256-Prüfsumme
sessionKeystringVerschlüsselungssitzungsschlüssel
errorstringFehlermeldung bei fehlgeschlagener Überprüfung
messagestringServernachricht

Zuweisen Sie das Gerät einer bestimmten Kanalgruppe.

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

Entfernen Sie die Zuweisung an eine Kanalgruppe und verwenden Sie die Standardwerte.

await updater.unsetChannel();

Ermitteln Sie die derzeitige Zuweisung an eine Kanalgruppe.

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

Alle verfügbaren Kanäle für diese App auflisten.

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

Bestimmen Sie, wann heruntergeladene Updates angewendet werden.

Legen Sie fest, welche Bedingungen 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
background__CAPGO_KEEP_0__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 erreicht ist
nativeVersionVersionssatzWarten, bis die native App aktualisiert ist

Alle Verzögerungsbedingungen löschen und die Aktualisierung sofort auf die nächste Überprüfung 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 (wirksam für Analysen).

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

Ändern Sie die URL des Update-Servers 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 der Kanalverwaltung.

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

Ändern Sie den App-ID bei Laufzeit.

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();

Verwenden Sie, um auf Aktualisierungsereignisse zu hören addListener:

updater.addListener('eventName', (event) => {
// Handle event
});
EreignisPayloadBeschreibung
download{ percent, status }Download-Progress-Updates
updateAvailable{ bundle }Neue Aktualisierung verfügbar
noNeedUpdate{ message }Schon 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);
});

Konstruktor-Optionen

Konstruktionsoptionen

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 zum Planen von Dashboard und API-Operationen verwenden, verbinden Sie es mit Mit @API/electron-updater für die native Fähigkeit in Mit @capgo/electron-updater, capgo Übersicht für die Implementierungsdetails in API Übersicht, Wenn Sie Electron Updater API Referenz verwenden 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.