Electron Updater API Referenz
Kopieren Sie einen Einrichtungsprompt mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin.
Diese Seite dokumentiert alle verfügbaren Methoden, Ereignisse und Konfigurationsoptionen für den Electron Updater.
Kernmethoden
Abschnitt mit dem Titel “Core Methods”notifyAppReady()
Abschnitt mit dem Titel “notifyAppReady()”Muss bei jedem App-Start aufgerufen werden. Bestätigt, dass das Bundle erfolgreich geladen wurde und verhindert einen automatischen Rückfall.
await updater.notifyAppReady();herunterladen(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 | Pflichtfeld | Beschreibung |
|---|---|---|---|
url | Zeichenfolge | Ja | URL zum Herunterladen des Bundles |
version | Zeichenfolge | Ja | Versionen-Bezeichner für das Bundle |
checksum | string | Nein | SHA256-Prüfsumme zur Verifizierung |
sessionKey | string | Nein | Sitzungschlüssel für verschlüsselte Bundle |
Rückgabewerte: BundleInfo Objekt mit id, version, status
next(options)
Abschnitt mit dem Titel “next(options)”Eine Warteschlange wird auf das nächste App-Neustart geladen.
await updater.next({ id: 'bundle-id' });Parameter:
| Option | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | Zeichenfolge | Ja | Bundle-ID zum Warten |
setzen Sie die Optionen
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 | Zeichenfolge | Ja | Bundle-ID zum Aktivieren |
reload()
Section titled “reload()”Manuell neuladen Sie die App mit der aktuellen Bundle-ID.
await updater.reload();löschen(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 eingebaute Version 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 Sie auf die letzte erfolgreiche Bundle anstatt dem Standard |
Bundle Informationen
Abschnitt mit dem Titel „Bundle Informationen“current()
Abschnitt mit dem Titel „current()“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)“Liste aller heruntergeladenen Bundles.
const bundles = await updater.list();// [{ id, version, status, downloaded, checksum }, ...]getNextBundle()
Abschnitt mit dem Titel “getNextBundle()”Laden Sie das Paket für den nächsten Neustart an.
const next = await updater.getNextBundle();// { id, version, status } or nullgetFailedUpdate()
Abschnitt mit dem Titel “getFailedUpdate()”Informationen über das letzte fehlgeschlagene Update (nützlich für Debugging von Rollover)
const failed = await updater.getFailedUpdate();// { id, version, reason } or nullgetBuiltinVersion()
Abschnitt mit dem Titel “getBuiltinVersion()”Version, die mit der Anwendungsbinary geliefert wurde
const version = await updater.getBuiltinVersion();// '1.0.0'Aktualisierungsprüfung
Abschnitt mit dem Titel “Aktualisierung überprüfen”getLatest(options)
Abschnitt mit dem Titel “getLatest(options)”Ü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ückgabewerte:
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
url | string | Download URL (empty if no update) |
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 mit dem Titel „Kanalverwaltung“setChannel(options)
Abschnitt mit dem Titel “setChannel(options)”Zuweisen Sie das Gerät einer bestimmten Kanalgruppe.
await updater.setChannel({ channel: 'beta' });unsetChannel(options)
Abschnitt mit dem Titel “unsetChannel(options)”Entferne Kanalzuweisung und verwende Standard.
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()”Liste aller verfügbaren Kanäle für diese App.
const channels = await updater.listChannels();// ['production', 'beta', 'staging']Verzögerungsbedingungen
Abschnitt mit dem Titel “Verzögerungsbedingungen”Kontrolle über die Anwendung heruntergeladener Updates.
setMultiDelay(options)
Abschnitt mit dem Titel “setMultiDelay(options)”Legen Sie Bedingungen fest, die vor der Anwendung eines Updates erfüllt sein müssen.
// 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 | Optionale Dauer (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 erreicht ist |
nativeVersion | Versionszeichenfolge | Warten auf eine native App-Update |
cancelDelay()
Abschnitt mit dem Titel „cancelDelay()“Alle Verzögerungsbedingungen löschen und das Update sofort auf der nächsten Ü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ätekennung.
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 (nützlich für Analysen).
await updater.setCustomId({ customId: 'user-123' });Konfiguration
Abschnitt mit dem Titel “Konfiguration”__CAPGO_KEEP_0__
Abschnitt mit dem Titel “setUpdateUrl(options)”Die Update-Server-URL ändern, ohne das Gerät neu zu starten.
await updater.setUpdateUrl({ url: 'https://my-server.com/updates' });__CAPGO_KEEP_0__
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)”Aktivieren 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();Ereignisse
Abschnitt mit dem Titel „Ereignisse“Verwenden Sie zum Abhören von Update-Ereignissen addListener:
updater.addListener('eventName', (event) => { // Handle event});Verfügbare Ereignisse
Abschnitt mit dem Titel „Verfügbare Ereignisse“| Ereignis | Payload | Beschreibung |
|---|---|---|
download | { percent, status } | Herunterladungsfortschrittsaktualisierungen |
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 Aktualisierung) |
updateFailed | { bundle, reason } | Update-Installation fehlgeschlagen |
appReloaded | {} | App wurde neu geladen |
appReady | {} | notifyAppReady() wurde aufgerufen |
Beispiel: Vollständige Ereignisbearbeitung
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: Konstruktor-OptionenVollstä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)});Fortsetzen von Electron Updater API Referenz
Abschnitt: Fortsetzen von Electron Updater API ReferenzWenn Sie Electron Updater __CAPGO_KEEP_0__ Referenz verwenden Electron Updater API Referenz um das Planungsbrett und API-Operationen zu planen, verbinden Sie es mit Mit @capgo/electron-updater zur nativen 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.