# autoUpdater
這個模塊提供了一個到 `Squirrel` 自動更新框架的接口。
## 平臺相關的提示
雖然 `autoUpdater` 模塊提供了一套各平臺通用的接口,但是在每個平臺間依然會有一些微小的差異。
### OS X
在 OS X 上,`autoUpdater` 模塊依靠的是內置的 [Squirrel.Mac][squirrel-mac],這意味著你不需要依靠其他的設置就能使用。關于
更新服務器的配置,你可以通過閱讀 [Server Support][server-support] 這篇文章來了解。
### Windows
在 Windows 上,你必須使用安裝程序將你的應用裝到用戶的計算機上,所以比較推薦的方法是用 [grunt-electron-installer][installer] 這個模塊來自動生成一個 Windows 安裝向導。
Squirrel 自動生成的安裝向導會生成一個帶 [Application User Model ID][app-user-model-id] 的快捷方式。
Application User Model ID 的格式是 `com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE`, 比如
像 `com.squirrel.slack.Slack` 和 `com.squirrel.code.Code` 這樣的。你應該在自己的應用中使用 `app.setAppUserModelId` 方法設置相同的 API,不然 Windows 將不能正確地把你的應用固定在任務欄上。
服務器端的配置和 OS X 也是不一樣的,你可以閱讀 [Squirrel.Windows][squirrel-windows] 這個文檔來獲得詳細信息。
### Linux
Linux 下沒有任何的自動更新支持,所以我們推薦用各個 Linux 發行版的包管理器來分發你的應用。
## 事件列表
`autoUpdater` 對象會觸發以下的事件:
### 事件:'error'
返回:
* `error` Error
當更新發生錯誤的時候觸發。
### 事件:'checking-for-update'
當開始檢查更新的時候觸發。
### 事件:'update-available'
當發現一個可用更新的時候觸發,更新包下載會自動開始。
### 事件:'update-not-available'
當沒有可用更新的時候觸發。
### 事件:'update-downloaded'
返回:
* `event` Event
* `releaseNotes` String - 新版本更新公告
* `releaseName` String - 新的版本號
* `releaseDate` Date - 新版本發布的日期
* `updateURL` String - 更新地址
在更新下載完成的時候觸發。
在 Windows 上只有 `releaseName` 是有效的。
## 方法列表
`autoUpdater` 對象有以下的方法:
### `autoUpdater.setFeedURL(url)`
* `url` String
設置檢查更新的 `url`,并且初始化自動更新。這個 `url` 一旦設置就無法更改。
### `autoUpdater.checkForUpdates()`
向服務端查詢現在是否有可用的更新。在調用這個方法之前,必須要先調用 `setFeedURL`。
### `autoUpdater.quitAndInstall()`
在下載完成后,重啟當前的應用并且安裝更新。這個方法應該僅在 `update-downloaded` 事件觸發后被調用。
[squirrel-mac]: https://github.com/Squirrel/Squirrel.Mac
[server-support]: https://github.com/Squirrel/Squirrel.Mac#server-support
[squirrel-windows]: https://github.com/Squirrel/Squirrel.Windows
[installer]: https://github.com/atom/grunt-electron-installer
[app-user-model-id]: https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx
- 介紹
- 常見問題
- Electron 常見問題
- 向導
- 支持平臺
- 分發應用
- 提交應用到 Mac App Store
- 打包應用
- 使用 Node 原生模塊
- 主進程調試
- 使用 Selenium 和 WebDriver
- 使用開發人員工具擴展
- 使用 Pepper Flash 插件
- 使用 Widevine CDM 插件
- 教程
- 快速入門
- 桌面環境集成
- 在線/離線事件探測
- API文檔
- 簡介
- 進程對象
- 支持的 Chrome 命令行開關
- 環境變量
- 自定義的 DOM 元素
- File 對象
- <webview> 標簽
- window.open 函數
- 在主進程內可用的模塊
- app
- autoUpdater
- BrowserWindow
- contentTracing
- dialog
- globalShortcut
- ipcMain
- Menu
- MenuItem
- powerMonitor
- powerSaveBlocker
- protocol
- session
- webContents
- Tray
- 在渲染進程(網頁)內可用的模塊
- desktopCapturer
- ipcRenderer
- remote
- webFrame
- 在兩種進程中都可用的模塊
- clipboard
- crashReporter
- nativeImage
- screen
- shell
- 開發
- 代碼規范
- 源碼目錄結構
- 與 NW.js(原 node-webkit)在技術上的差異
- 構建系統概覽
- 構建步驟(OS X)
- 構建步驟(Windows)
- 構建步驟(Linux)
- 在調試中使用 Symbol Server