2. autoUpdater

原文: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事件。这里不同于一般的退出顺序。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容