Passer à la navigation principale

Référence Electron Updater API

GitHub

Cette page documente toutes les méthodes, les événements et les options de configuration disponibles pour l'Electron Updater.

Doit être appelée à chaque lancement de l'application. Confirme que le bundle a été chargé avec succès et empêche le roulement 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 :

OptionTypeObligatoireDescription
urlchaîneOuiURL à partir de laquelle télécharger le bundle
versionchaîneOuiIdentifiant de version pour le bundle
checksumchaîneNonChecksum SHA256 pour la vérification
sessionKeychaîneNonClé de session pour les bundles chiffrés

Renvoi : BundleInfo objet avec id, version, status

File d'attente d'un bundle pour le prochain redémarrage de l'application.

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

Paramètres :

OptionTypeObligatoireDescription
idchaîneOuiIdentifiant de bundle à file d'attente

Passer immédiatement à un bundle et recharger l'application.

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

Paramètres :

OptionTypeObligatoireDescription
idChaîne de caractèresOuiIdentifiant de bundle à activer

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îneOuiID de bundle à supprimer

Réinitialiser à la version intégrée ou à la dernière mise à jour 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 mise à jour réussie au lieu de la version intégrée

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

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

Affichez la liste de tous les paquets téléchargés.

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

Obtenez le bundle programmé 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 les débogages de 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);
}

Retourne :

PropriétéTypeDescription
urlchaîneURL de téléchargement (vide si aucune mise à jour)
versionstringVersion disponible
checksumstringVérification de checksum SHA256
sessionKeystringClé de session de cryptage
errorstringMessage d'erreur si la vérification a échoué
messagestringMessage du serveur

Attribuer le dispositif à un canal spécifique.

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

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

await updater.unsetChannel();

Récupérer la mise en correspondance de canal actuelle.

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

Listez tous les canaux disponibles pour cette application.

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

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

Définir les conditions qui doivent être remplies avant que l'update soit appliqué.

// 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
backgroundDélai optionnel (ms)Attendre que l'application soit mis en arrière-plan
kill-Attendre que l'application soit fermée et redémarrée
dateChaîne de date ISOAttendre jusqu'à une date/heure spécifique
nativeVersionChaîne de versionAttendre une mise à jour de l'application native

Supprimer toutes les conditions de retard et appliquer la mise à jour immédiatement à la prochaine vérification.

await updater.cancelDelay();

Obtenir 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 d'actualisation en temps de cours.

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

Récupérer l'ID d'application actuel.

const appId = await updater.getAppId();

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

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

Vérifiez 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énementCharge utileDescription
download{ percent, status }Mise à jour du téléchargement
updateAvailable{ bundle }Une mise à jour est disponible
noNeedUpdate{ message }Vous êtes déjà à jour
downloadComplete{ bundle }Téléchargement terminé avec succès
downloadFailed{ bundle, error }Téléchargement échoué
breakingAvailable{ bundle }Une mise à jour incompatible est disponible (mise à jour native requise)
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);
});

Options de configuration complètes 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 Electron Updater API Reference pour planifier le tableau de bord et les opérations API, connectez-l’à En utilisant @capgo/electron-updater pour la capacité native dans 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, et Appareils pour le détail d'implémentation dans Appareils.