Elektron-Updater API-Referenz
Eine Einrichtungsvorlage mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin kopieren.
Diese Seite dokumentiert alle verfügbaren Methoden, Ereignisse und Konfigurationsoptionen für den Electron-Updater.
Kernmethoden
Abschnitt mit dem Titel “Kernmethoden”notifyAppReady()
Abschnitt mit dem Titel “notifyAppReady()”Muss auf jedem Anwendungsstart aufgerufen werden. Bestätigt, dass die Bundle erfolgreich geladen wurde und verhindert automatische Rückschritte.
await updater.notifyAppReady();download(options)
Abschnitt mit dem Titel “download(options)”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:
| Option | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
url | string | Ja | URL zum Herunterladen des Bundles |
version | string | Ja | Versionen-Bezeichner für das Bundle |
checksum | string | Nein | SHA256-Prüfsumme zur Verifizierung |
sessionKey | string | Nein | Sitzungs-Schlüssel für verschlüsselte Bundles |
Rückgabewert: BundleInfo Objekt mit id, version, status
next(options)
Abschnitt mit dem Titel “next(options)”Eine Bundle-Queue für das Laden bei der nächsten App-Neustart erstellen.
await updater.next({ id: 'bundle-id' });Parameter:
| Option | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | Zeichenfolge | Ja | Bundle-ID, um die Warteschlange anzuzeigen |
__CAPGO_KEEP_0__
Abschnitt mit dem Titel „set(options)“Sich sofort auf ein Bundle umschalten und die App neu laden.
await updater.set({ id: 'bundle-id' });Parameter:
| Option | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | Zeichenfolge | Ja | Bundle-ID zum Aktivieren |
__CAPGO_KEEP_0__
Abschnitt: __CAPGO_KEEP_0__Mit dem aktuellen Bundle manuell die App neu laden.
await updater.reload();delete(options)
Abschnitt: delete(options)Ein Bundle aus dem Speicher löschen.
await updater.delete({ id: 'bundle-id' });Parameter:
| Option | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | Zeichenfolge | Ja | Bundle-ID zum Löschen |
reset(options)
Abschnitt mit dem Titel „reset(options)“Zurücksetzen auf die Standardversion oder die 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 | Wenn wahr, zurücksetzen auf letzte erfolgreiche Bundle anstatt auf Builtin |
Bundle Informationen
Abschnitt mit dem Titel “Bundle Informationen”aktuell()
Abschnitt mit dem Titel “aktuell()”Ermitteln Sie Informationen über das aktuelle Bundle und die native Version.
const info = await updater.current();// { bundle: { id, version, status }, native: '1.0.0' }list(options)
Abschnitt mit dem Titel „list(options)“Alle heruntergeladenen Pakete auflisten.
const bundles = await updater.list();// [{ id, version, status, downloaded, checksum }, ...]getNextBundle()
Abschnitt mit dem Titel „getNextBundle()“Das für das nächste Neustarten angespielte Paket abrufen.
const next = await updater.getNextBundle();// { id, version, status } or nullgetFailedUpdate()
Abschnitt mit dem Titel „getFailedUpdate()“Informationen über die letzte fehlgeschlagene Aktualisierung abrufen (wirksam für Debugging von Rollover-Operationen).
const failed = await updater.getFailedUpdate();// { id, version, reason } or nullgetBuiltinVersion()
Abschnitt mit dem Titel “getBuiltinVersion()”Ermitteln Sie die mit der App-Binary gelieferte Version.
const version = await updater.getBuiltinVersion();// '1.0.0'Aktualisierungsprüfung
Abschnitt mit dem Titel “Aktualisierungsprüfung”getLatest(options)
Abschnitt mit dem Titel “getLatest(options)”Ü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:
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
url | __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ (leer, wenn keine Aktualisierung verfügbar) |
version | __CAPGO_KEEP_0__ | Verfügbare Version |
checksum | __CAPGO_KEEP_0__ | SHA256-Prüfsumme |
sessionKey | __CAPGO_KEEP_0__ | Verschlüsselungssitzungsschlüssel |
error | __CAPGO_KEEP_0__ (wenn Überprüfung fehlgeschlagen) | __CAPGO_KEEP_0__ |
message | __CAPGO_KEEP_0__ | Servernachricht |
Kanalverwaltung
Abschnitt mit dem Titel „Kanalverwaltung“setChannel(options)
Abschnitt mit dem Titel „setChannel(options)“Zuweisen Sie das Gerät einem bestimmten Kanal.
await updater.setChannel({ channel: 'beta' });unsetChannel(options)
Abschnitt mit dem Titel „unsetChannel(options)“Entfernen Sie die Kanalzuweisung und verwenden Sie die Standard-Einstellung.
await updater.unsetChannel();getChannel()
Abschnitt mit dem Titel “getChannel()”Ermitteln Sie die aktuelle Kanalzuweisung.
const channel = await updater.getChannel();// { channel: 'production', status: 'set' }listChannels()
Abschnitt mit dem Titel “listChannels()”Listen Sie alle verfügbaren Kanäle für diese App auf.
const channels = await updater.listChannels();// ['production', 'beta', 'staging']Verzögerungsbedingungen
Abschnitt mit dem Titel “Verzögerungsbedingungen”Bestimmen Sie, wann heruntergeladene Updates angewendet werden.
setMultiDelay(options)
Abschnitt mit dem Titel “setMultiDelay(options)”Setzen Sie Bedingungen, 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' } ]});Verzögerungsbedingungstypen:
| Art | Wert | Beschreibung |
|---|---|---|
background | Optional (ms) | Warten, bis die App in den Hintergrund geschoben wird |
kill | - | Warten, bis die App beendet und neu gestartet wird |
date | ISO-Datumszeichenfolge | Warten, bis eine bestimmte Uhrzeit |
nativeVersion | Versionszeichenfolge | Warten auf native App-Update |
__CAPGO_KEEP_0__
Abschnitt: "cancelDelay()"Alle Verzögerungsbedingungen löschen und Update sofort auf nächsten Überprüfung anwenden.
await updater.cancelDelay();Geräteidentifikation
Abschnitt: "Geräteidentifikation"getDeviceId()
Abschnitt: "getDeviceId()"Ermitteln Sie die eindeutige Geräte-ID.
const deviceId = await updater.getDeviceId();// 'uuid-xxxx-xxxx-xxxx'setCustomId(options)
Abschnitt mit dem Titel “setCustomId(options)”Setzen Sie einen benutzerdefinierten Identifikator für das Gerät (nützlich für Analysen).
await updater.setCustomId({ customId: 'user-123' });Konfiguration
Abschnitt mit dem Titel “Konfiguration”setUpdateUrl(options)
Abschnitt mit dem Titel “setUpdateUrl(options)”Ändern Sie die Update-Server-URL während der Ausführung.
await updater.setUpdateUrl({ url: 'https://my-server.com/updates' });setStatsUrl(options)
Abschnitt mit dem Titel “setStatsUrl(options)”Ändern Sie die URL für die Statistikberichterstattung.
await updater.setStatsUrl({ url: 'https://my-server.com/stats' });setChannelUrl(options)
Abschnitt mit dem Titel “setChannelUrl(options)”Ändern Sie die URL für die Kanalverwaltung.
await updater.setChannelUrl({ url: 'https://my-server.com/channel' });setAppId(options)
Abschnitt mit dem Titel “setAppId(options)”Ändern Sie die App-ID während der Ausführung.
await updater.setAppId({ appId: 'com.example.newapp' });getAppId()
Abschnitt mit dem Titel “getAppId()”Ermitteln Sie die aktuelle App-ID.
const appId = await updater.getAppId();setDebugMenu(options)
Abschnitt mit dem Titel „setDebugMenu(options)“Festlegen oder deaktivieren Sie das Debug-Menü.
await updater.setDebugMenu({ enabled: true });isDebugMenuEnabled()
Abschnitt mit dem Titel „isDebugMenuEnabled()“Überprüfen Sie, ob das Debug-Menü aktiviert ist.
const enabled = await updater.isDebugMenuEnabled();Verwenden Sie zum Abonnieren von Update-Ereignissen addListener:
updater.addListener('eventName', (event) => { // Handle event});Verfügbare Ereignisse
Verfügbare Ereignisse| Ereignis | Payload | Beschreibung |
|---|---|---|
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 } | Inkompatibles Update verfügbar (erfordert native Update) |
updateFailed | { bundle, reason } | Update-Installation fehlgeschlagen |
appReloaded | {} | App wurde neu geladen |
appReady | {} | notifyAppReady() was genannt |
Beispiel: Vollständige Ereignisbearbeitung
Abschnitt mit dem Titel „Beispiel: Vollständige Ereignisbearbeitung“// 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);});Konstruktor-Optionen
Abschnitt mit dem Titel „Konstruktor-Optionen“Vollständige Konfigurationsmöglichkeiten 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)});