Aller au contenu principal

autoUpdater

Permet aux application de se mettre à jour automatiquement.

Processus : Main

Voir aussi : Un guide détaillé à propos de l’implémentation des mises à jour dans votre application.

autoUpdater est un EventEmitter.

Avertissement concernant les plateformes

Pour le moment, seuls macOS et Windows sont supportés. Il n'y a donc aucune prise en charge de l'auto-update sur Linux, et recommandé d'utiliser le gestionnaire de paquets de votre distribution afin de mettre à jour votre application.

En outre, il y a quelques différences subtiles sur chaque plateforme :

macOS

Sur macOS, le module autoUpdater repose sur Squirrel.Mac, ce qui signifie que vous n'avez pas besoin d'une installation spécifique pour le faire fonctionner. Pour les besoins du côté serveur, vous pouvez lire le support du serveur. Notez que l'App Transport Securité (ATS) s'applique à toutes les demandes formulées dans le cadre du processus de mise à jour. Les applications qui ont besoin de désactiver l'ATS peuvent ajouter la clé NSAllowsArbitraryLoads à leur fichier plist.

Note: Votre application doit-être signée pour les mises à jour automatiques sur macOS. C'est un pré-requis de Squirrel.Mac.

Windows

Sur Windows, vous devez installer votre application dans la machine d’un utilisateur avant de pouvoir utiliser autoUpdater, il est donc recommandé d'utiliser electron-winstaller, Electron Forge ou le package grunt-electron-installer pour générer un installeur Windows.

Lorsque vous utilisez electron-winstaller ou Electron Forge, assurez-vous de ne pas tenter de mettre à jour votre application lors de sa première exécution (voir également ce problème pour plus d'information). Il est également recommandé d'utiliser electron-squirrel-startup pour les raccourcis de votre application sur le bureau.

L'installateur généré avec Squirrel va créer une icône de raccourci avec un Application User Model ID au format com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE. Voici deux exemples : com.squirrel.slack.Slack et com.squirrel.code.Code. Vous devez utiliser pour votre application le même ID qu'avec l'API app.setAppUserModelId, sinon Windows ne sera pas en mesure d'épingler correctement votre application dans la barre des tâches.

Comme Squirrel.Mac, Windows peut héberger des mises à jour sur S3 ou tout autre hôte de fichiers statiques. Pour obtenir plus de détails sur le fonctionnement de Squirrel.Windows, vous pouvez lire la documentation Squirrel.Windows .

Événements

L'objet autoUpdater émet les événements suivants :

Événement : 'error'

Retourne :

  • error Error

Émis lorsqu’il y a une erreur pendant la mise à jour.

Événement : 'checking-for-update'

Émis lors de la vérification du commencement d'une mise à jour.

Événement : 'update-available'

Émis lorsqu'une mise à jour est disponible. La mise à jour est téléchargée automatiquement.

Événement : 'update-not-available'

Émis quand il n’y a aucune mise à jour disponible.

Événement : 'update-downloaded'

Retourne :

  • event Event
  • releaseNotes string
  • releaseName string
  • releaseDate Date
  • updateURL string

Émis lorsqu'une mise à jour a été téléchargée.

Sur Windows, seulement releaseName est disponible.

Note: La gestion de cet événement n'est pas strictement nécessaire. Une mise à jour téléchargée avec succès sera tout de même appliquée au prochain démarrage de l'application.

Événement : 'before-quit-for-update'

Cet événement est émis dès qu'un utilisateur appelle quitAndInstall().

Quand cette API est appelée, l'événement before-quit n'est pas émis tant que toutes les fenêtres ne sont pas fermées. Ainsi vous devrez écouter cet évènement si vous voulez effectuer des actions avant que les fenêtres ne soient fermées et qu'un processus est en train d'être arrêté, et écoutant aussi before-quit.

Méthodes

L'objet autoUpdater dispose des méthodes suivantes :

autoUpdater.setFeedURL(options)

  • Objet options
    • url string
    • headers Record<string, string\> (optional) macOS - HTTP request headers.
    • serverType string (facultatif) macOS - Soit json ou default, voir le README Squirrel.Mac pour plus d’informations.

Définit l'url et initialise l'auto updater.

autoUpdater.getFeedURL()

Retourne string - L'URL du flux de mise à jour actuel.

autoUpdater.checkForUpdates()

Demande au serveur s'il y a une mise à jour disponible. Vous devez appeler setFeedURL avant d'utiliser cette API.

Note:: Si une mise à jour est disponible, elle sera téléchargée automatiquement. L'appel à autoUpdater.checkForUpdates() deux fois téléchargera la mise à jour deux fois.

autoUpdater.quitAndInstall()

Redémarre l'application et installe la mise à jour après son téléchargement. Ne doit être apellé qu'une fois update-downloaded emis.

Sous le capot l'appel à autoUpdater.quitAndInstall() fermera d'abord toutes les applications windows, et appellera automatiquement app.quit() après que toutes les fenêtres aient été fermées.

Note: Il n'est pas forcément nécessaire d'apeller cette fonction pour appliquer une mise à jour puisqu'une mise à jour téléchargée avec succès sera toujours appliquée la prochaine fois que l'application démarrera.