2. autoUpdater

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

使應用程序自己自動更新。

進程:主進程

autoUpdater模塊提供一個Squirrel框架的接口。

通過使用這些項目之一你可以快速啟動一個多平臺發(fā)布服務器來發(fā)布你的應用:

  • nuts: 一個智能的發(fā)布你的應用的服務,使用GitHub作為后臺。使用Squirrel自動更新(Mac和Windows)
  • electron-release-server: 一個全功能的自己托管的electron應用發(fā)布服務,兼容自動更新
  • squirrel-updates-server: 一個基于使用GitHub的Squirrel.Mac和Squirrel.Windows發(fā)布的簡單的node.js的服務
  • squirrel-release-server: 一個基于Squirrel.Windows的簡單的PHP應用,通過folder. Supports讀取更新信息進行更新

<h2 id="platform-notices">平臺的注意事項</h2>

雖然autoUpdater對不同平臺提供一個統(tǒng)一的借口,但是每一個平臺都有著細微的差別。

<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-winstaller,electron-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創(chuàng)建一個快捷圖標,例如com.squirrel.slack.Slackcom.squirrel.code.Code。你需要使用同樣的ID調用你應用的app.setAppUserModelId接口,否則Windows將不允許你的應用程序放置在任務欄中。

服務端的設置也是不同于MacOS。你可以閱讀Squirrel.Windows的文檔來獲取更多信息。

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

Linux中沒有內置支持自動更新,所以建議使用發(fā)布包管理器來更新你的應用。

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

autoUpdater對象分發(fā)下面的事件:

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

返回值:

  • error Error類型

更新出錯時被分發(fā)。

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

檢查更新是否啟動時被分發(fā)。

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

當有可用的更新時被分發(fā)。這個更新將會被自動下載。

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

當有沒有可用的更新時被分發(fā)。

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

返回值:

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

當一個更新下載完成時被分發(fā)。

Windows中只有releaseName是有效的。

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

autoUpdater對象有以下的方法:

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

  • url String類型
  • requestHeaders Object類型 MacOS可用 (可選參數(shù))- 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事件被分發(fā)之后調用。

注意:autoUpdater.quitAndInstall()將會首先關閉所有應用窗口,并且關閉之后只會分發(fā)appbefore-quit事件。這里不同于一般的退出順序。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容