autoUpdater
自动更新器
启用应用程序自动更新自己。
程序:主
大autoUpdater
模块为Squirrel框架。
您可以使用以下项目之一快速启动多平台发布服务器,以分发应用程序:
- nuts:
使用GitHub作为后端,为您的应用程序提供智能发布服务器。用Squirrel(Mac和Windows)自动更新
- electron-release-server:
一种功能齐全、自托管的电子应用发布服务器,与自动更新程序兼容。
squirrel-updates-server:
一个用于Squirrel的简单node.js服务器。Mac和Squirrel。使用GitHub发行版的Windows
squirrel-release-server:一个用于squirrel的简单PHP应用程序。从文件夹读取更新的窗口。支持增量更新。
平台通知
尽管autoUpdater
为不同的平台提供统一的API,每个平台上仍然存在一些细微的差异。
MacOS
在MacOS上,autoUpdater
模块是建立在Squirrel.Mac
,这意味着你不需要任何特殊的设置来使它工作。对于服务器端的需求,您可以读取服务器支持注意应用程序传输安全(ATS)适用于作为更新过程一部分而发出的所有请求。需要禁用ATS的应用程序可以添加NSAllowsArbitraryLoads
他们的应用程序的plist的钥匙。
注:
必须对应用程序进行签名,以便在MacOS上进行自动更新。这是Squirrel.Mac
的要求。
Windows
在Windows上,您必须将应用程序安装到用户的计算机中,然后才能使用autoUpdater
,因此建议您使用电子绞车,电子锻造或者电子安装程序生成Windows安装程序的包。
使用时电子绞车或电子锻造确保您没有尝试更新您的应用程序。它第一次运行(也见这一期获得更多信息)。还建议使用电子松鼠启动为您的应用程序获取桌面快捷方式。
使用Scaprel生成的安装程序将创建一个快捷图标,其中包含应用程序用户模型ID%28https://msdn.microsoft.com/en-us/Library/windows/桌面/dd378459%28V=vs.85%29.aspx%29,格式为com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE
,例如com.squirrel.slack.Slack
和com.squirrel.code.Code
.您必须在您的应用程序中使用相同的IDapp.setAppUserModelId
API,否则Windows将无法正确地将应用程序钉在任务栏中。
不像松鼠。Mac,Windows可以在S3或任何其他静态文件主机上承载更新。你可以读到松鼠。窗了解更多关于松鼠的细节。窗户工作。
linux
Linux上不支持自动更新程序,因此建议使用发行版的包管理器更新应用程序。
事件
autoUpdater
对象发出以下事件:
事件:“错误”
返回:
error
误差在更新时出现错误时发出。事件:“检查更新”检查更新是否已启动时发出。事件:“更新-可用”在有可用更新时发出。更新将自动下载。事件:“更新-无效”在没有可用更新时发出。活动:“更新-下载”返回:
event
事件
releaseNotes
弦
releaseName
弦
releaseDate
日期
updateURL
串
在下载更新时发出。
仅在Windows上releaseName
是可用的。
方法
autoUpdater
对象具有以下方法:
autoUpdater.setFeedURL(url[, requestHeaders])
url
串
requestHeaders
对象MacOS
%28可选%29-HTTP请求头。
设置url
并初始化自动更新程序。
autoUpdater.getFeedURL()
返回String
-当前更新提要URL。
autoUpdater.checkForUpdates()
询问服务器是否有更新。你必须打电话setFeedURL
在使用此API之前。
autoUpdater.quitAndInstall()
重新启动应用程序,并在下载后安装更新程序。应该只在后面调用update-downloaded
已经被释放了。
注:
autoUpdater.quitAndInstall()
将首先关闭所有应用程序窗口,并仅发出before-quit
事件app
在那之后。这与正常的退出事件序列不同。