__CAPGO_KEEP_0__
Eine Einrichtungsvorschlag mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin kopieren.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/electron-updater`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/electron-updater/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Diese Anleitung führt Sie durch die Einrichtung von @capgo/electron-updater in Ihrer Electron-Anwendung, um lebendige JavaScript/HTML/CSS-Updates zu ermöglichen.
Voraussetzungen
Abschnitt mit dem Titel „Voraussetzungen“- Elektron 20.0.0 oder höher
- Node.js 18 oder höher
- Ein Capgo-Konto (Registrieren Sie sich bei capgo.app)
Installation
Abschnitt mit dem Titel „Installation”-
Installieren Sie das Paket:
Terminalfenster bun add @capgo/electron-updater -
Holten Sie sich Ihre App-ID aus dem Capgo-Dashboard. Wenn Sie noch keinen App erstellt haben, führen Sie:
Terminalfenster npx @capgo/cli@latest init
Der Electron-Updater erfordert eine Einrichtung in drei Orten: Hauptprozess, Vorladeprozedur und Renderer-Prozess.
Hauptprozess
Abschnitt mit dem Titel “Hauptprozess”import { app, BrowserWindow } from 'electron';import * as path from 'path';import { ElectronUpdater, setupIPCHandlers, setupEventForwarding,} from '@capgo/electron-updater';
// Create updater instance with your Capgo App IDconst updater = new ElectronUpdater({ appId: 'YOUR_CAPGO_APP_ID', // e.g., 'com.example.myapp' autoUpdate: true,});
app.whenReady().then(async () => { const mainWindow = new BrowserWindow({ width: 1200, height: 800, webPreferences: { preload: path.join(__dirname, 'preload.js'), contextIsolation: true, }, });
// Initialize updater with window and builtin path const builtinPath = path.join(__dirname, 'www/index.html'); await updater.initialize(mainWindow, builtinPath);
// Setup IPC communication between main and renderer setupIPCHandlers(updater); setupEventForwarding(updater, mainWindow);
// Load the current bundle (either builtin or downloaded update) await mainWindow.loadFile(updater.getCurrentBundlePath());});
app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit(); }});Vorladeprozedur
Abschnitt mit dem Titel “Vorladeprozedur”import { exposeUpdaterAPI } from '@capgo/electron-updater/preload';
// Expose the updater API to the renderer processexposeUpdaterAPI();Renderer-Prozess
Abschnitt mit dem Titel “Renderer-Prozess”// renderer.ts (or in your app's entry point)import { requireUpdater } from '@capgo/electron-updater/renderer';
const updater = requireUpdater();
// CRITICAL: Call this on every app launch!// This confirms the bundle loaded successfully and prevents rollbackawait updater.notifyAppReady();
console.log('App ready, current bundle:', await updater.current());Aktualisierungen überprüfen
Überschrift: Aktualisierungen überprüfenMit autoUpdate: trueder Updater überprüft automatisch Aktualisierungen. Sie können auch manuelle Überprüfungen auslösen:
// Check for updates manuallyconst latest = await updater.getLatest();
if (latest.url && !latest.error) { console.log('Update available:', latest.version);
// Download the update const bundle = await updater.download({ url: latest.url, version: latest.version, checksum: latest.checksum, });
console.log('Downloaded bundle:', bundle.id);
// Option 1: Queue for next restart await updater.next({ id: bundle.id });
// Option 2: Apply immediately and reload // await updater.set({ id: bundle.id });}Auf Ereignisse hören
Abschnitt mit dem Titel “Auf Ereignisse hören”Verfolgen Sie den Fortschritt und den Status der Aktualisierung mit Ereignissen:
// Download progressupdater.addListener('download', (event) => { console.log(`Download progress: ${event.percent}%`);});
// Update availableupdater.addListener('updateAvailable', (event) => { console.log('New version available:', event.bundle.version);});
// Download completedupdater.addListener('downloadComplete', (event) => { console.log('Download finished:', event.bundle.id);});
// Update failedupdater.addListener('updateFailed', (event) => { console.error('Update failed:', event.bundle.version);});Aktualisierungen bereitstellen
Abschnitt mit dem Titel “Aktualisierungen bereitstellen”Verwenden Sie die Capgo CLI zum Hochladen von Aktualisierungen:
# Build your appnpm run build
# Upload to Capgonpx @capgo/cli@latest bundle upload --channel=productionIhr Electron-App wird automatisch den neuen Bundle auf der nächsten Überprüfung erkennen und herunterladen.
Debug-Menü
Abschnitt mit dem Titel “Debug-Menü”Aktivieren Sie das Debug-Menü während der Entwicklung:
const updater = new ElectronUpdater({ appId: 'YOUR_CAPGO_APP_ID', debugMenu: true, // Enable debug menu});Drücken Sie Ctrl+Shift+D (oder Cmd+Shift+D auf einem Mac) zum Öffnen des Debug-Menüs und:
- Aktuelle Bundle-Informationen anzeigen
- Zwischen verfügbaren Bundles wechseln
- Zurücksetzen auf die interne Version
- Geräte- und Kanal-Info anzeigen
Konfigurationsoptionen
Abschnitt mit dem Titel „Konfigurationsoptionen“const updater = new ElectronUpdater({ // Required appId: 'com.example.app',
// Server URLs (defaults to Capgo Cloud) updateUrl: 'https://plugin.capgo.app/updates', channelUrl: 'https://plugin.capgo.app/channel_self', statsUrl: 'https://plugin.capgo.app/stats',
// Behavior autoUpdate: true, // Enable auto-updates appReadyTimeout: 10000, // MS before rollback (default: 10s) autoDeleteFailed: true, // Delete failed bundles autoDeletePrevious: true, // Delete old bundles after successful update
// Channels defaultChannel: 'production',
// Security publicKey: '...', // For end-to-end encryption
// Debug debugMenu: false, // Enable debug menu disableJSLogging: false, // Disable console logs
// Periodic Updates periodCheckDelay: 0, // Seconds between checks (0 = disabled, min 600)});Weiterführende Schritte
Abschnitt mit dem Titel „Weiterführende Schritte”- API Referenz - Erforsche alle verfügbaren Methoden
- Kanäle - Erforsche die Informationen zu den Bereitstellungskanälen
- Rückgängigmachungen - Verstehe die Schutzfunktionen für Rückgängigmachungen
Weitermachen von Getting Started with Electron Updater
Abschnitt mit dem Titel „Weitermachen von Getting Started with Electron Updater”Wenn Sie Electron Updater verwenden Getting Started with Electron Updater für die native Plugin-Arbeit zu planen, verbinden Sie es mit Mit @capgo/electron-updater für die native Fähigkeit in Mit @capgo/electron-updater, Capgo Plugin-Verzeichnis für den Produktworkflow in Capgo Plugin-Verzeichnis, Capacitor Plugins von Capgo für die Implementierungsdetail in Capacitor Plugins von Capgo, Plugins hinzufügen oder aktualisieren für die Implementierungsdetail in Plugins hinzufügen oder aktualisieren, und Ionic Enterprise Plugin Alternativen für den Produktworkflow in Ionic Enterprise Plugin Alternativen.