在线文档教程

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.Slackcom.squirrel.code.Code.您必须在您的应用程序中使用相同的IDapp.setAppUserModelIdAPI,否则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在那之后。这与正常的退出事件序列不同。