autoUpdater
进程:主进程
另见: .
autoUpdater
是一个EventEmitter.
目前只支持 macOS 和 Windows 版本。 在 Linux 上没有内置的自动更新程序,因此建议使用发行版包管理器来更新您的应用程序。
此外,每个平台都有一些细微的差别:
在macOS上, autoUpdater
模块建立在 上,这意味着你不需要任何特殊的设置来使它工作。 对于服务器端要求, 你可以阅读 Server Support. 注意 (ATS) 适用于所有请求作为更新过程的一部分。</0> 如需禁用ATS的应用程序可以在其应用程序的plist中添加 NSAllowsArbitraryLoads
属性。
注意: 在 macOS 上,您的应用程序必须得到签名后方可自动更新。 这是 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 the , Electron Forge or the package to generate a Windows installer.
When using electron-winstaller or make sure you do not try to update your app the first time it runs (Also see ). 还建议使用 electron-squirrel-startup 来创建应用程序的桌面快捷方式。
类似 Squirrel.Mac,Windows 可以在 S3 或其他静态文件主机上托管更新。 你可以阅读 的文档来获得更多关于 Squirrel.Windows 是如何工作的信息。
autoUpdater
对象会触发以下的事件:
Event: ‘error’
返回:
当更新发生错误的时候触发。
Event: ‘checking-for-update’
当开始检查更新的时候触发。
当有可用更新的时候触发。 更新将自动下载。
Event: ‘update-not-available’
当没有可用更新的时候触发。
Event: ‘update-downloaded’
返回:
event
EventreleaseNotes
stringreleaseName
stringreleaseDate
DateupdateURL
string
在更新下载完成的时候触发。
注意: 此事件并不一定需要处理。 成功下载的更新仍将在应用程序下次启动时应用。
Event: ‘before-quit-for-update’
此事件是在用户调用quitAndInstall()
之后发出的。
当此API被调用时,会在所有窗口关闭之前发出 before-quit
事件。 因此,如果您希望在关闭窗口进程退出之前执行操作,则应该侦听此事件,以及侦听 before-quit
。
autoUpdater
对象具有以下方法:
选项
对象url
stringserverType
string(可选) macOS - 可以是json
或者default
,查看 的README文件获取更多详细信息。
设置检查更新的 url
,并且初始化自动更新。
autoUpdater.getFeedURL()
返回 string
- 获取当前更新的 Feed 链接.
autoUpdater.checkForUpdates()
询问服务器是否有更新。 在使用此 API 之前,您必须调用setFeedURL
。
注意: 若更新可用将自动下载 调用 autoUpdater.checkForUpdates()
方法两次将下载更新两次
autoUpdater.quitAndInstall()
重启应用并在下载后安装更新。 它只应在发出 update-downloaded
后方可被调用。
注意: 严格来讲,执行一次自动更新不一定要调用此方法。因为下载更新文件成功之后,下次应用启动的时候会强制更新。