Electron 自動更新功能autoUpdater

2018-11-15 19:03 更新

autoUpdater 

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

過程: main

autoUpdater模塊為Squirrel框架提供了一個界面。

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

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

不同平臺差異

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

MACOS 

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

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


windows


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

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

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

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

Linux

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


Events

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

事件:'錯誤' 

返回:

  • error錯誤

更新時發(fā)生錯誤時發(fā)出。

事件:'檢查更新' 

檢查更新是否已啟動時發(fā)出。

事件:'更新可用' 

當有可用更新時發(fā)出。 更新將自動下載。

事件:'update-not-available' 

當沒有可用更新時發(fā)出。

事件:'更新下載' 

返回:

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

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

在Windows上,只有releaseName可用。

方法 

autoUpdater對象具有以下方法:

autoUpdater.setFeedURL(url[, requestHeaders]) 

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

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

autoUpdater.getFeedURL() 

返回String - 當前的更新Feed URL。

autoUpdater.checkForUpdates() 

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

autoUpdater.quitAndInstall() 

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

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




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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號