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.

[!IMPORTANT] Your application must be signed for automatic updates on 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'

Emitted when checking for an available update has started.

É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] It is not strictly necessary to handle this event. A successfully downloaded update will still be applied the next time the application starts.

É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] If an update is available it will be downloaded automatically. 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.

Derrière l'appel de autoUpdater.quitAndInstall() fermera toutes les applications windows en premier, appellera automatiquement app.quit() après que toutes les fenêtres aient été fermées.

[!NOTE] It is not strictly necessary to call this function to apply an update, as a successfully downloaded update will always be applied the next time the application starts.