Electron 自動(dòng)更新功能autoUpdater

2018-11-15 19:03 更新

autoUpdater 

啟用應(yīng)用程序自動(dòng)更新。

過程: main

autoUpdater模塊為Squirrel框架提供了一個(gè)界面。

您可以通過使用以下任一項(xiàng)目快速啟動(dòng)多平臺(tái)發(fā)布服務(wù)器來分發(fā)應(yīng)用程序:

  • 堅(jiān)果 : 您的應(yīng)用程序的智能版本服務(wù)器,使用GitHub作為后端。 用Squirrel(Mac&Windows)自動(dòng)更新
  • 電子發(fā)布服務(wù)器 : 一個(gè)功能齊全的自主發(fā)布的電子應(yīng)用服務(wù)器,與自動(dòng)更新兼容
  • squirrel-updates-server : 用于Squirrel.Mac和Squirrel.Windows的簡單node.js服務(wù)器,它使用GitHub版本
  • squirrel-release-server : 一個(gè)用于Squirrel.Windows的簡單PHP應(yīng)用程序,用于從文件夾讀取更新。 支持增量更新。

不同平臺(tái)差異

雖然autoUpdater為不同的平臺(tái)提供了一個(gè)統(tǒng)一的API,但每個(gè)平臺(tái)上仍然存在一些微妙的差異。

MACOS 

在macOS上, autoUpdater模塊基于 Squirrel.Mac ,這意味著您不需要任何特殊的設(shè)置來使其工作。 對于服務(wù)器端要求,您可以閱讀服務(wù)器支持 。 請注意, 應(yīng)用程序傳輸安全性 (ATS)適用于作為更新過程一部分的所有請求。 需要禁用ATS的應(yīng)用程序可以將NSAllowsArbitraryLoads鍵添加到其應(yīng)用程序的plist中。

注意:您的應(yīng)用程序必須簽名才能自動(dòng)更新macOS。 這是Squirrel.Mac的要求。


windows


在Windows上,您必須先將自己的應(yīng)用程序安裝到用戶的機(jī)器中,然后才能使用autoUpdater ,因此建議您使用electronic-winstaller ,  electron-forgegrunt-electron-installer軟件包來生成Windows安裝程序。

當(dāng)使用electronic-winstaller電子偽造時(shí),請確保您第一次運(yùn)行時(shí)不嘗試更新應(yīng)用程序(另請參閱 此問題以獲取更多信息 )。 還建議您使用電子松鼠啟動(dòng)來獲取您的應(yīng)用程序的桌面快捷方式。

使用 Squirrel 生成的安裝程序?qū)⒁詂om.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE的格式創(chuàng)建一個(gè)應(yīng)用程序用戶模型ID的快捷方式圖標(biāo),示例為com.squirrel.slack.Slack和com.squirrel.code.Code 。 您必須使用app.setAppUserModelId API為您的應(yīng)用使用相同的ID,否則Windows將無法在任務(wù)欄中正確引導(dǎo)您的應(yīng)用。

與Squirrel.Mac不同,Windows可以在S3或任何其他靜態(tài)文件主機(jī)上托管更新。 您可以閱讀Squirrel.Windows的文檔,以獲取有關(guān)Squirrel.Windows如何工作的更多詳細(xì)信息。

Linux

在Linux上沒有自動(dòng)更新程序的內(nèi)置支持,因此建議使用發(fā)行版的軟件包管理器來更新應(yīng)用程序。


Events

autoUpdater對象發(fā)出以下事件:

事件:'錯(cuò)誤' 

返回:

  • error錯(cuò)誤

更新時(shí)發(fā)生錯(cuò)誤時(shí)發(fā)出。

事件:'檢查更新' 

檢查更新是否已啟動(dòng)時(shí)發(fā)出。

事件:'更新可用' 

當(dāng)有可用更新時(shí)發(fā)出。 更新將自動(dòng)下載。

事件:'update-not-available' 

當(dāng)沒有可用更新時(shí)發(fā)出。

事件:'更新下載' 

返回:

  • event事件
  • releaseNotes字符串
  • releaseName字符串
  • releaseDate Date
  • updateURL String

下載更新時(shí)發(fā)出。

在Windows上,只有releaseName可用。

方法 

autoUpdater對象具有以下方法:

autoUpdater.setFeedURL(url[, requestHeaders]) 

  • url String
  • requestHeaders對象macOS (可選) - HTTP請求頭。

設(shè)置url并初始化自動(dòng)更新程序。

autoUpdater.getFeedURL() 

返回String - 當(dāng)前的更新Feed URL。

autoUpdater.checkForUpdates() 

請求服務(wù)器是否有更新。 在使用此API之前,您必須調(diào)用setFeedURL 。

autoUpdater.quitAndInstall() 

重新啟動(dòng)應(yīng)用程序,并在安裝更新后下載。 只有在update-downloaded后才應(yīng)該調(diào)用它。

注意: autoUpdater.quitAndInstall()將首先關(guān)閉所有應(yīng)用程序窗口,然后才在app之后發(fā)出before-quit事件。 這與正常退出事件序列不同。




以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)