Aller au contenu principal

autoUpdater

Permet aux application de se mettre à jour automatiquement.

Process: Main

See also: A detailed guide about how to implement updates in your application.

autoUpdater is an 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. Note that App Transport Security (ATS) applies to all requests made as part of the update process. 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

On Windows, you have to install your app into a user's machine before you can use the autoUpdater, so it is recommended that you use electron-winstaller or Electron Forge's Squirrel.Windows maker to generate a Windows installer.

Apps built with Squirrel.Windows will trigger custom launch events that must be handled by your Electron application to ensure proper setup and teardown.

Squirrel.Windows apps will launch with the --squirrel-firstrun argument immediately after installation. During this time, Squirrel.Windows will obtain a file lock on your app, and autoUpdater requests will fail until the lock is released. In practice, this means that you won't be able to check for updates on first launch for the first few seconds. You can work around this by not checking for updates when process.argv contains the --squirrel-firstrun flag or by setting a 10-second timeout on your update checks (see electron/electron#7155 for more information).

The installer generated with Squirrel.Windows will create a shortcut icon with an Application User Model ID in the format of com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE, examples are com.squirrel.slack.Slack and 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.

É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.