Guida
Tutorial su Electron Updater
Utilizzando @capgo/electron-updater
@capgo/electron-updater gives Electron apps the same Capgo live-update model as @capgo/capacitor-updater. Si inizializza nel processo principale, si espongono i ponti del renderer attraverso preload e si chiama notifyAppReady() Aggiornamento
Configurazione del processo principale
bun add @capgo/electron-updater
Ponte di preload
import { app, BrowserWindow } from 'electron';
import path from 'node:path';
import { ElectronUpdater, setupEventForwarding, setupIPCHandlers } from '@capgo/electron-updater';
const updater = new ElectronUpdater({
appId: 'com.example.desktop',
autoUpdate: true,
});
app.whenReady().then(async () => {
const window = new BrowserWindow({
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
contextIsolation: true,
},
});
const builtinPath = path.join(__dirname, 'www/index.html');
await updater.initialize(window, builtinPath);
setupIPCHandlers(updater);
setupEventForwarding(updater, window);
await window.loadFile(updater.getCurrentBundlePath());
});
Installa il plugin Electron Updater per avere gli stessi vantaggi di aggiornamento live come Capacitor.
import { exposeUpdaterAPI } from '@capgo/electron-updater/preload';
exposeUpdaterAPI();
Utilizzo del renderer
import { requireUpdater } from '@capgo/electron-updater/renderer';
const updater = requireUpdater();
await updater.notifyAppReady();
const latest = await updater.getLatest();
if (latest.url && !latest.error) {
const bundle = await updater.download({
url: latest.url,
version: latest.version,
checksum: latest.checksum,
});
await updater.next({ id: bundle.id });
}
Ascolta gli eventi di aggiornamento
updater.addListener('download', ({ percent }) => {
console.log('Download progress', percent);
});
updater.addListener('updateFailed', ({ bundle }) => {
console.error('Update failed', bundle.version);
});
Distribuisci un nuovo bundle
bun run build
bunx @capgo/cli@latest bundle upload --channel=production
Consigli pratici
- Chiamalo sempre
notifyAppReady()all'inizio del renderer affinché la protezione del rollback funzioni come previsto. - Mantieni stabile la cartella costruita e lascia che l'aggiornatore decida se caricare il bundle spedito o uno scaricato.
- Reinserisci lo stesso canale e il modello di rilascio Capgo che già utilizzi su mobile quando la tua app Electron condivide una pipeline di rilascio backend.
Continua da Utilizzo di @capgo/electron-updater
Se stai utilizzando Utilizzo di @capgo/electron-updater per pianificare il lavoro di plugin nativi, connettilo con @capgo/aggiornatore_electron per i dettagli di implementazione in @capgo/aggiornatore_electron Avvio rapido con Aggiornatore Electron per i dettagli di implementazione in Avvio rapido con Aggiornatore Electron Directory Plugin di Capgo per il flusso di lavoro del prodotto in Directory Plugin di Capgo Plugin di Capacitor per Capgo per i dettagli di implementazione in Plugin di Capacitor per Capgo, e Aggiunta o Aggiornamento di Plugin per i dettagli di implementazione in Aggiunta o Aggiornamento di Plugin.