Electron Updater API Referenz
Einen Setup-Prompt mit den Installationsanweisungen und der vollständigen Markdown-Dokumentation 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 bei jedem App-Start aufgerufen werden. Bestätigt, dass die Bundle erfolgreich geladen wurden und verhindert einen automatischen Rollback.
await updater.notifyAppReady();download(options)
Abschnitt mit dem Titel “download(options)”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__
| Option | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
url | Zeichenfolge | Ja | URL zum Herunterladen des Bundles |
version | Ja | Versionenbezeichner für das Bundle | __CAPGO_KEEP_1__ |
checksum | string | Nein | SHA256-Prüfsumme zur Verifizierung |
sessionKey | string | Nein | Sitzungschlüssel für verschlüsselte Bundles |
Rückgabewert: BundleInfo Objekt mit id, version, status
next(options)
Abschnitt mit dem Titel “next(options)”Ein Bundle in der Warteschlange für das Laden beim nächsten App-Neustart einrichten.
await updater.next({ id: 'bundle-id' });Parameter:
| Option | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | string | Ja | Bundle-ID, die in der Warteschlange ist |
set(options)
Abschnitt mit der Überschrift “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 | string | Ja | Bundle-ID zum Aktivieren |
Section titled “reload()”
Die App manuell mit der aktuellen Bundle neu laden.Zurücksetzen in die Zwischenablage
await updater.reload();löschen(options)
Sektion: "löschen(options)"Einen Bundle aus dem Speicher löschen.
await updater.delete({ id: 'bundle-id' });Parameter:
| Option | Typ | Verpflichtend | Beschreibung |
|---|---|---|---|
id | string | Ja | Bundle-ID zum Löschen |
reset(options)
Abschnitt mit dem Titel “reset(options)”Zurücksetzen auf die eingebaute Version oder die letzte erfolgreiche Paketierung.
// 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 die letzte erfolgreiche Paketierung anstatt auf die eingebaute |
Bundle Informationen
Abschnitt: "Bundle Informationen"current()
Abschnitt: "current()"Informationen über das aktuelle Bundle und die native Version erhalten.
const info = await updater.current();// { bundle: { id, version, status }, native: '1.0.0' }list(options)
Abschnitt: "list(options)"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 nullgetFailedUpdate()
Abschnitt mit dem Titel “getFailedUpdate()”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 nullgetBuiltinVersion()
Abschnitt mit dem Titel “getBuiltinVersion()”Die Version, die mit der App-Binary geliefert wurde, erhalten.
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 | string | Herunterladungs-URL (leer, wenn keine Aktualisierung verfügbar ist) |
version | string | Verfügbare Version |
checksum | string | SHA256-Prüfsumme |
sessionKey | string | Verschlüsselungssitzungsschlüssel |
error | string | Fehlermeldung bei fehlgeschlagener Überprüfung |
message | string | Servernachricht |
Kanalverwaltung
Abschnitt 'Kanalverwaltung'setChannel(options)
Abschnitt 'setChannel(options)'Zuweisen Sie das Gerät einer bestimmten Kanalgruppe.
await updater.setChannel({ channel: 'beta' });unsetChannel(options)
Abschnitt mit dem Titel “unsetChannel(options)”Entfernen Sie die Zuweisung an eine Kanalgruppe und verwenden Sie die Standardwerte.
await updater.unsetChannel();getChannel()
Abschnitt mit dem Titel “getChannel()”Ermitteln Sie die derzeitige Zuweisung an eine Kanalgruppe.
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']Verzögerungsbedingungen
Abschnitt mit dem Titel „Verzögerungsbedingungen“Bestimmen Sie, wann heruntergeladene Updates angewendet werden.
__CAPGO_KEEP_0__
Abschnitt mit dem Titel „__CAPGO_KEEP_0__“Legen Sie fest, welche Bedingungen 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 | __CAPGO_KEEP_0__ | 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 erreicht ist |
nativeVersion | Versionssatz | Warten, bis die native App aktualisiert ist |
cancelDelay()
Abschnitt mit dem Titel “cancelDelay()”Alle Verzögerungsbedingungen löschen und die Aktualisierung sofort auf die nächste Überprüfung anwenden.
await updater.cancelDelay();Geräteidentifikation
Abschnitt mit dem Titel „Geräteidentifikation“getDeviceId()
Abschnitt mit dem Titel „getDeviceId()“Ermitteln Sie die eindeutige Geräteidentifikation.
const deviceId = await updater.getDeviceId();// 'uuid-xxxx-xxxx-xxxx'setCustomId(options)
Abschnitt mit dem Titel „setCustomId(options)“Setzen Sie eine benutzerdefinierte Identifikation für das Gerät (wirksam 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 URL des Update-Servers 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 der Kanalverwaltung.
await updater.setChannelUrl({ url: 'https://my-server.com/channel' });setAppId(options)
Abschnitt mit dem Titel “setAppId(options)”Ändern Sie den App-ID bei Laufzeit.
await updater.setAppId({ appId: 'com.example.newapp' });getAppId()
Abschnitt mit dem Titel „getAppId()“Aktuelle App-ID abrufen.
const appId = await updater.getAppId();setDebugMenu(options)
Abschnitt mit dem Titel „setDebugMenu(options)“Debug-Menü aktivieren oder deaktivieren.
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, um auf Aktualisierungsereignisse zu hören addListener:
updater.addListener('eventName', (event) => { // Handle event});Verfügbare Events
Abschnitt mit dem Titel “Verfügbare Events”| Ereignis | Payload | Beschreibung |
|---|---|---|
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 |
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
KonstruktionsoptionenVollstä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)});Weitergehen von Electron Updater API Referenz
Abschnitt mit dem Titel “Weitergehen von Electron Updater API Referenz”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.