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
ist ein 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
Unter Windows müssen Sie Ihre App auf dem Rechner eines Benutzers installieren, bevor Sie autoUpdater
verwenden können, also wird empfohlen, den electron-winstaller zu verwenden, Electron Forge oder das Paket grunt-electron-installer um einen Windows-Installer zu erzeugen.
Wenn Sie electron-winstaller oder Electron Forge verwenden, stellen Sie sicher, dass Sie nicht versuchen, Ihre App beim ersten Ausführen zu aktualisieren (Siehe auch dieses Problem für weitere Informationen). Es wird auch empfohlen, electron-squirrel-startup zu verwenden, um Desktop-Verknüpfungen für Ihre App zu erhalten.
Der Squirrel-Installer wird eine Desktop-Verknüpfung erstellen mit der Application User Model ID im Format com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE
, zum Beispiel: com.squirrel.slack.Slack
oder 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.
Wie Squirrel.Mac kann Windows Updates auf S3 oder jedem anderen statischen Dateisystem hosten. Weitere Informationen können in der Dokumentation von Squirrel.Windows gefunden werden.
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
EventreleaseNotes
stringreleaseName
stringreleaseDate
DateupdateURL
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)
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.