Passer à la navigation

Référence de l'actualisation d'Electron API

GitHub

Cette page documente toutes les méthodes, les événements et les options de configuration disponibles pour le Mise à jour Electron.

Doit être appelée à chaque lancement de l'application. Confirme que le bundle a été chargé avec succès et empêche le roulage automatique.

await updater.notifyAppReady();

Télécharger un bundle à partir d'une URL.

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
});

Paramètres :

OptionTypeRequisDescription
urlchaîne de caractèresOuiURL pour télécharger le bundle
versionchaîne de caractèresOuiIdentifiant de version pour le bundle
checksumchaîne de caractèresNonChecksum SHA256 pour la vérification
sessionKeychaîne de caractèresNonClé de session pour les ensembles chiffrés

Retourne : BundleInfo objet avec id, version, status

File d'attente un bundle pour être chargé à la prochaine redémarrage de l'application.

await updater.next({ id: 'bundle-id' });

Paramètres :

OptionTypeObligatoireDescription
idchaîneOuiID de l'application à ajouter à la file d'attente

Passer immédiatement à une application et recharger l'application.

await updater.set({ id: 'bundle-id' });

Paramètres :

OptionTypeObligatoireDescription
idchaîneOuiID de l'application pour l'activation

Recharger manuellement l'application avec le bundle actuel.

await updater.reload();

Supprimer un bundle du stockage.

await updater.delete({ id: 'bundle-id' });

Paramètres :

OptionTypeObligatoireDescription
idchaîneOuiIdentifiant de bundle à supprimer

Réinitialiser à la version par défaut ou la dernière bundle réussie.

// Reset to builtin
await updater.reset({ toLastSuccessful: false });
// Reset to last successful bundle
await updater.reset({ toLastSuccessful: true });

Paramètres :

OptionTypeObligatoireDescription
toLastSuccessfulbooleanNonSi vrai, réinitialisez à la dernière bundle réussie au lieu de la version intégrée

Obtenez des informations sur le bundle actuel et la version native.

const info = await updater.current();
// { bundle: { id, version, status }, native: '1.0.0' }

Listez tous les bundles téléchargés.

const bundles = await updater.list();
// [{ id, version, status, downloaded, checksum }, ...]

Obtenez le bundle en attente pour la prochaine redémarrage.

const next = await updater.getNextBundle();
// { id, version, status } or null

Obtenez des informations sur la dernière mise à jour échouée (utile pour le débogage des retours en arrière).

const failed = await updater.getFailedUpdate();
// { id, version, reason } or null

Obtenez la version embarquée avec le fichier binaire de l'application.

const version = await updater.getBuiltinVersion();
// '1.0.0'

Vérifiez le serveur pour la dernière version disponible.

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);
}

Renvoie :

PropriétéTypeDescription
urlchaîneURL de téléchargement (vide si aucune mise à jour)
versionchaîneVersion disponible
checksumchaîneChecksum SHA256
sessionKeychaîneClé de session de cryptage
errorstringMessage d'erreur si la vérification a échoué
messagestringMessage du serveur

Attribuer le dispositif à une chaîne spécifique.

await updater.setChannel({ channel: 'beta' });

Supprimer l'affectation de canal et utiliser la valeur par défaut.

await updater.unsetChannel();

Obtenir la mise en page actuelle de canal.

const channel = await updater.getChannel();
// { channel: 'production', status: 'set' }

Lister tous les canaux disponibles pour cette application.

const channels = await updater.listChannels();
// ['production', 'beta', 'staging']

Contrôle quand les mises à jour téléchargées sont appliquées.

Définir les conditions qui doivent être remplies avant qu'une mise à jour soit appliquée.

// Wait for app to be backgrounded
await updater.setMultiDelay({
delayConditions: [{ kind: 'background' }]
});
// Wait until specific date
await updater.setMultiDelay({
delayConditions: [{ kind: 'date', value: '2024-12-25T00:00:00Z' }]
});
// Wait for app to be killed and restarted
await 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' }
]
});

Types de conditions de retard :

TypeValeurDescription
backgroundDurée optionnelle (ms)Attendre que l'application soit mis en arrière-plan
kill-Attendre que l'application soit tuée et redémarrée
dateChaîne de date ISOAttendre une date et heure spécifiques
nativeVersionChaîne de versionAttendre la mise à jour de l'application native

Supprimer toutes les conditions de délai et appliquer la mise à jour immédiatement lors du prochain contrôle.

await updater.cancelDelay();

Obtenez l'identifiant unique du dispositif.

const deviceId = await updater.getDeviceId();
// 'uuid-xxxx-xxxx-xxxx'

Définir un identifiant personnalisé pour le dispositif (utile pour les analyses).

await updater.setCustomId({ customId: 'user-123' });

Changer l'URL du serveur de mise à jour en temps réel.

await updater.setUpdateUrl({ url: 'https://my-server.com/updates' });

Changer l'URL de rapport de statistiques.

await updater.setStatsUrl({ url: 'https://my-server.com/stats' });

Changer l'URL de gestion de canal.

await updater.setChannelUrl({ url: 'https://my-server.com/channel' });

Changer l'ID de l'application en temps de exécution.

await updater.setAppId({ appId: 'com.example.newapp' });

Obtenir l'ID de l'application actuel.

const appId = await updater.getAppId();

Activer ou désactiver le menu de débogage.

await updater.setDebugMenu({ enabled: true });

Vérifier si le menu de débogage est activé.

const enabled = await updater.isDebugMenuEnabled();

Écoutez les événements de mise à jour en utilisant addListener:

updater.addListener('eventName', (event) => {
// Handle event
});
ÉvénementPayloadDescription
download{ percent, status }Mise à jour des progrès de téléchargement
updateAvailable{ bundle }Nouvelle mise à jour disponible
noNeedUpdate{ message }Déjà à jour
downloadComplete{ bundle }Téléchargement terminé avec succès
downloadFailed{ bundle, error }Téléchargement échoué
breakingAvailable{ bundle }Mise à jour incompatibilité disponible (exige mise à jour native)
updateFailed{ bundle, reason }Échec de l'installation de la mise à jour
appReloaded{}L'application a été rechargée
appReady{}notifyAppReady() a été appelé
// Progress tracking
updater.addListener('download', (event) => {
updateProgressBar(event.percent);
});
// Update available notification
updater.addListener('updateAvailable', (event) => {
showNotification(`Update ${event.bundle.version} available!`);
});
// Handle completion
updater.addListener('downloadComplete', async (event) => {
// Queue for next restart
await updater.next({ id: event.bundle.id });
showNotification('Update will apply on next restart');
});
// Handle failures
updater.addListener('updateFailed', (event) => {
console.error('Update failed:', event.reason);
reportError(event);
});

Toutes les options de configuration pour 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)
});

Si vous utilisez L'actualisation d'Electron API Reference pour planifier le tableau de bord et les opérations API, connectez-le à En utilisant @capgo/electron-updater pour la capacité native en utilisant @capgo/electron-updater, API Vue d'ensemble pour le détail d'implémentation dans API Vue d'ensemble, Introduction pour le détail d'implémentation dans Introduction, API Clés pour le détail d'implémentation dans API Clés, Appareils pour le détail d'implémentation dans Appareils.