Passer à la navigation

Référence Electron Updater API

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 roulement automatique.

await updater.notifyAppReady();

Téléchargez 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

Retourne : BundleInfo objet avec id, version, status

File à charger lors du prochain redémarrage de l'application.

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

Paramètres :

OptionTypeObligatoireDescription
idchaîneOuiIdentifiant de bundle à charger

Switcher immédiatement vers un bundle et recharger l'application.

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

Paramètres :

OptionTypeObligatoireDescription
idchaîneOuiIdentifiant de bundle à activer

Recharger manuellement l'application avec le bundle actuel.

await updater.reload();

Supprimer un bundle de stockage.

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

Paramètres :

OptionTypeObligatoireDescription
idchaîneOuiID de bundle à supprimer

Réinitialiser vers 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 la bundle actuelle et la version native.

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

Listez toutes les bundles téléchargées.

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

Obtenez le bundle en attente pour le prochain 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
checksumstringChecksum SHA256
sessionKeystringClé de session de cryptage
errorstringMessage d'erreur si la vérification a échoué
messagestringMessage du serveur

gestion de canal

Gestion des canaux

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

Obtenir la valeur actuelle de l'attribution de canal.

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.

Fixez 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é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 de l'appareil.

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

Définir un identifiant personnalisé pour l'appareil (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 d'application en temps de cours.

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

Obtenez 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 mises à jour d'événements en utilisant addListener:

updater.addListener('eventName', (event) => {
// Handle event
});
ÉvénementPayloadDescription
download{ percent, status }Actualiser la progression de téléchargement
updateAvailable{ bundle }Une nouvelle 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 }L'installation de la mise à jour a échoué
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)
});

Continuez à partir de la référence Electron Updater API

Section intitulée « Continuez à partir de la référence Electron Updater API »

Si vous utilisez Référence Electron Updater API pour planifier le tableau de bord et les opérations API, connectez-le à En utilisant @capgo/electron-updater pour la capacité native dans En utilisant @capgo/electron-updater, API Présentation pour les détails d'implémentation dans API Présentation, Introduction pour les détails d'implémentation dans Introduction, API Clés pour les détails d'implémentation dans API Clés, et Appareils pour les détails d'implémentation dans Appareils.