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
EventreleaseNotes
stringreleaseName
stringreleaseDate
DateupdateURL
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
stringheaders
Record<string, string> (optional) macOS - HTTP request headers.serverType
string (facultatif) macOS - Soitjson
oudefault
, 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.