2. autoUpdater

作者: Shmily落墨 | 来源:发表于2017-03-04 12:00 被阅读573次

原文:https://github.com/electron/electron/blob/master/docs/api/auto-updater.md
译者:Lin

使应用程序自己自动更新。

进程:主进程

autoUpdater模块提供一个Squirrel框架的接口。

通过使用这些项目之一你可以快速启动一个多平台发布服务器来发布你的应用:

  • nuts: 一个智能的发布你的应用的服务,使用GitHub作为后台。使用Squirrel自动更新(Mac和Windows)
  • electron-release-server: 一个全功能的自己托管的electron应用发布服务,兼容自动更新
  • squirrel-updates-server: 一个基于使用GitHub的Squirrel.Mac和Squirrel.Windows发布的简单的node.js的服务
  • squirrel-release-server: 一个基于Squirrel.Windows的简单的PHP应用,通过folder. Supports读取更新信息进行更新

<h2 id="platform-notices">平台的注意事项</h2>

虽然autoUpdater对不同平台提供一个统一的借口,但是每一个平台都有着细微的差别。

<h3 id="macOS">MacOS<h3>

MacOS中,autoUpdater模块是基于Squirrel.Mac的,这意味着你不需要任何特殊的设置就能让他工作。对于服务器端的要求,你可以阅读Server Support。请注意,App Transport Security (ATS) 适用于将所有的请求都作为更新过程的一部分。应用如果需要禁用ATS可以将NSAllowsArbitraryLoads添加到他们应用的plist文件中。

注意:你的应用必须在MacOS上注册自动更新。这是Squirrel.Mac的要求。

<h3 id="windows">Windows</h3>

Windows中,你需要在你使用autoUpdater之前安装你的应用到用户的机器上,所以建议你使用electron-winstallerelectron-builder或者grunt-electron-installer来打包生成一个Windows安装包。

当使用electron-winstaller或者electron-builder时请确定你没有在第一次运行时尝试更新你的应用(可以查看这个问题的更多信息)。也同样建议使用electron-squirrel-startup来获取你应用程序的桌面快捷方式。

使用Squirrel生成安装程序将会使用格式为com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXEApplication User Model ID创建一个快捷图标,例如com.squirrel.slack.Slackcom.squirrel.code.Code。你需要使用同样的ID调用你应用的app.setAppUserModelId接口,否则Windows将不允许你的应用程序放置在任务栏中。

服务端的设置也是不同于MacOS。你可以阅读Squirrel.Windows的文档来获取更多信息。

<h3 id="linux">Linux</h3>

Linux中没有内置支持自动更新,所以建议使用发布包管理器来更新你的应用。

<h2 id="events">事件</h2>

autoUpdater对象分发下面的事件:

<h3 id="event-error">事件:'error'</h3>

返回值:

  • error Error类型

更新出错时被分发。

<h3 id="event-checking-for-update">事件:'checking-for-update'</h3>

检查更新是否启动时被分发。

<h3 id="event-update-available">事件:'update-available'</h3>

当有可用的更新时被分发。这个更新将会被自动下载。

<h3 id="event-update-not-available">事件:'update-not-available'</h3>

当有没有可用的更新时被分发。

<h3 id="event-update-downloaded">事件:'update-downloaded'</h3>

返回值:

  • event Event类型
  • releaseNotes String类型
  • releaseName String类型
  • releaseDate Date类型
  • updateURL String类型

当一个更新下载完成时被分发。

Windows中只有releaseName是有效的。

<h2 id="methods">方法</h2>

autoUpdater对象有以下的方法:

<h3 id="autoUpdater-setFeedURL">autoUpdater.setFeedURL(url[, requestHeaders])</h3>

  • url String类型
  • requestHeaders Object类型 MacOS可用 (可选参数)- HTTP请求头。

设置url和初始化自动更新。

<h3 id="autoUpdater-getFeedURL">autoUpdater.getFeedURL()</h3>

返回值为String类型 - 当前的提供更新的URL。

<h3 id="autoUpdater-checkForUpdates">autoUpdater.checkForUpdates()</h3>

询问服务器是否有更新。你必须在使用这个接口之前setFeedURL

<h3 id="autoUpdater-quitAndInstall">autoUpdater.quitAndInstall()</h3>

在下载完之后安装更新并且重启应用。这个接口需要在update-downloaded事件被分发之后调用。

注意:autoUpdater.quitAndInstall()将会首先关闭所有应用窗口,并且关闭之后只会分发appbefore-quit事件。这里不同于一般的退出顺序。

相关文章

  • 2. autoUpdater

    原文:https://github.com/electron/electron/blob/master/docs/...

  • Windows 下支持自动更新的 Electron 应用脚手架

    前言 之前写过一篇关于 Windows 下通过 Electron 自带的 autoUpdater 实现应用自动更新...

  • electron-builder+electron-update

    autoUpdater:使应用程序能够自动更新ipcMain:用于从主进程到渲染进程的异步通信。ipcRender...

  • Electron AutoUpdater自动更新问题

    最近使用electron-builder提供的nsis模块重新设计了windows平台的打包方式。区别于elect...

  • Electron autoUpdater实现Windows安装包

    前言 Electron帮助我们突破浏览器的界限,通过Electron构建的桌面应用拥有各种浏览器应用梦寐以求的能力...

  • WinForm通用自动更新器AutoUpdater项目实战(发布

    一、项目背景介绍 最近单位开发一个项目,其中需要用到自动升级功能。因为自动升级是一个比较常用的功能,可能会在很多程...

  • 2.

    越长大越觉得被喜欢真的是一件很幸福的事情。

  • 2.

    屠然走得太急了,关门时的巨大动静她没注意到是震醒了床上的人,他施施然的睁开眼,不见昨晚醉酒的人,微微笑了笑“还...

  • 2.

    (二) 玄衣男子脚边的碎石子从崖边滚了下去,久久没有听见回声。 雨水落在发梢,从头发上...

  • 2.

    我跟我妈抱怨,为什么她把我生得身上这么多汗毛? 我妈说,那是因为我返祖。返祖? ! 返祖?...

网友评论

    本文标题:2. autoUpdater

    本文链接:https://www.haomeiwen.com/subject/euodgttx.html