Zum Hauptteil springen

autoUpdater

Aktivieren Sie Apps, um sich automatisch selbst zu aktualisieren.

Prozess: Haupt

Siehe auch: Eine detaillierte Anleitung zur Implementierung von Updates in Ihrer Anwendung.

autoUpdater is an EventEmitter.

Plattform-Hinweise

Aktuell werden nur macOS und Windows unterstützt. Da es keinen eingebauten auto-updater auf den meisten Linux-Basierenden Betriebssystemen gibt, wird empfohlen, den eingebauten Pakete-Verwalter der Distribution zu verwenden, um die App zu updaten.

Außerdem gibt es auf jeder Plattform einige subtile Unterschiede:

macOS

Unter MacOS basiert das autoUpdater Modul auf Squirrel.Mac, was bedeutet daß keine spezifische Konfiguration vonnöten ist. Für serverseitige Anforderungen können Sie Serverunterstützung lesen. Note that App Transport Security (ATS) applies to all requests made as part of the update process. Apps, die ATS deaktivieren müssen, können den Schlüssel NSAllowsArbitraryLoads zu ihrer App hinzufügen.

Notiz: Eine App muss zuerst signiert werden, um automatisch auf macOS updatet zu werden. Dies ist eine Voraussetzung von 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. Sie müssen dieselbe ID für Ihre App mit der app.setAppUserModelId API verwenden, da Windows sonst Ihre App nicht ordnungsgemäß in der Taskleiste anheften kann.

Ereignisse

Das autoUpdater - Object gibt die folgenden Ereignisse aus:

Event: 'error'

Kehrt zurück:

  • error Fehler

Wird gesendet, wenn beim Aktualisieren ein Fehler auftritt.

Ereignis : "Nach Updates suchen"

Wird gesendet, wenn geprüft wird, ob ein Update gestartet wurde.

Ereignis : 'Update-verfügbar'

Wird ausgelöst, wenn ein Update verfügbar ist. Das Update wird automatisch heruntergeladen.

Ereignis : "Update nicht verfügbar"

Wird gesendet, wenn kein Update verfügbar ist.

Ereignis : 'Update-Download'

Kehrt zurück:

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

Wird gesendet, wenn ein Update heruntergeladen wurde.

Unter Windows ist nur releaseName verfügbar.

Hinweis: Es ist nicht unbedingt notwendig, dieses Ereignis zu behandeln. Ein fehlerfreie Heruntergeladenes Update wird automatisch übernommen, wenn die App das nächste mal gestartet wird.

Ereignis: 'before-quit-for-update'

Dieses Event wird ausgelöst, wenn die Funktion quitAndInstall() aufgerufen wird.

Das before-quit Event wird erst ausgelöst nachdem alle Fenster geschlossen sind. Daher sollten Sie Aktionen, die Sie vor dem Beenden Ihrer Anwendung ausführen möchten, sowohl in diesem Event als auch im before-quit Event einbauen.

Methoden

Das Objekt autoUpdater verfügt über die folgenden Methoden:

autoUpdater.setFeedURL(optionen)

  • options Objekt
    • url string
    • headers Record<string, string> (optional) macOS - HTTP request headers.
    • serverType string (optional) macOS - Kann json oder default sein, siehe dazu Squirrel.Mac README für weitere informationen.

Setzt die url und initialisiert den automatischen Updater.

autoUpdater.getFeedURL()

Gibt string - Die aktuelle URL des Aktualisierungsfeeds.

autoUpdater.checkForUpdates()

Fragt den Server, ob es ein Update gibt. Es muss zuerst setFeedURL aufrufen werden, bevor diese API verwendet werden kann.

Hinweis: Wenn ein Update verfügbar ist, wird es automatisch heruntergeladen. Wenn Sie autoUpdater.checkForUpdates() zweimal aufrufen, wird das Update zweimal heruntergeladen.

autoUpdater.quitAndInstall()

Startet die App neu und installiert damit das Update, sofern es heruntergeladen wurde. Diese Funktion sollte nur aufgerufen werden, nachdem update-downloaded ausgelöst wurde.

Unter der Haube schließt autoUpdater.quitAndInstall() zuerst alle Fenster und führt danach automatisch app.quit() aus.

Hinweis.: Es ist nicht unbedingt notwendig, diese Funktion auszulösen, denn ein fehlerfrei heruntergeladenes Update wird immer automatisch installiert, wenn die App das nächste mal startet.