101 lines
		
	
	
	
		
			2.9 KiB
			
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
	
		
			2.9 KiB
			
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # autoUpdater
 | |
| 
 | |
| This module provides an interface for the `Squirrel` auto-updater framework.
 | |
| 
 | |
| ## Platform notices
 | |
| 
 | |
| Though `autoUpdater` provides a uniform API for different platforms, there are
 | |
| still some subtle differences on each platform.
 | |
| 
 | |
| ### OS X
 | |
| 
 | |
| On OS X, the `autoUpdater` module is built upon [Squirrel.Mac][squirrel-mac],
 | |
| meaning you don't need any special setup to make it work. For server-side
 | |
| requirements, you can read [Server Support][server-support].
 | |
| 
 | |
| ### Windows
 | |
| 
 | |
| On Windows, you have to install your app into a user's machine before you can
 | |
| use the auto-updater, so it is recommended to use
 | |
| [grunt-electron-installer][installer] module to generate a Windows installer.
 | |
| 
 | |
| The installer generated with Squirrel will create a shortcut icon with an
 | |
| [Application User Model ID][app-user-model-id] in the format of
 | |
| `com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE`, examples are
 | |
| `com.squirrel.slack.Slack` and `com.squirrel.code.Code`. You have to use the
 | |
| same ID for your app with `app.setAppUserModelId` API, otherwise Windows will
 | |
| not be able to pin your app properly in task bar.
 | |
| 
 | |
| The server-side setup is also different from OS X. You can read the documents of
 | |
| [Squirrel.Windows][squirrel-windows] to get more details.
 | |
| 
 | |
| ### Linux
 | |
| 
 | |
| There is no built-in support for auto-updater on Linux, so it is recommended to
 | |
| use the distribution's package manager to update your app.
 | |
| 
 | |
| ## Events
 | |
| 
 | |
| The `autoUpdater` object emits the following events:
 | |
| 
 | |
| ### Event: 'error'
 | |
| 
 | |
| Returns:
 | |
| 
 | |
| * `error` Error
 | |
| 
 | |
| Emitted when there is an error while updating.
 | |
| 
 | |
| ### Event: 'checking-for-update'
 | |
| 
 | |
| Emitted when checking if an update has started.
 | |
| 
 | |
| ### Event: 'update-available'
 | |
| 
 | |
| Emitted when there is an available update. The update is downloaded
 | |
| automatically.
 | |
| 
 | |
| ### Event: 'update-not-available'
 | |
| 
 | |
| Emitted when there is no available update.
 | |
| 
 | |
| ### Event: 'update-downloaded'
 | |
| 
 | |
| Returns:
 | |
| 
 | |
| * `event` Event
 | |
| * `releaseNotes` String
 | |
| * `releaseName` String
 | |
| * `releaseDate` Date
 | |
| * `updateURL` String
 | |
| 
 | |
| Emitted when an update has been downloaded.
 | |
| 
 | |
| On Windows only `releaseName` is available.
 | |
| 
 | |
| ## Methods
 | |
| 
 | |
| The `autoUpdater` object has the following methods:
 | |
| 
 | |
| ### `autoUpdater.setFeedURL(url)`
 | |
| 
 | |
| * `url` String
 | |
| 
 | |
| Sets the `url` and initialize the auto updater. The `url` cannot be changed
 | |
| once it is set.
 | |
| 
 | |
| ### `autoUpdater.checkForUpdates()`
 | |
| 
 | |
| Asks the server whether there is an update. You must call `setFeedURL` before
 | |
| using this API.
 | |
| 
 | |
| ### `autoUpdater.quitAndInstall()`
 | |
| 
 | |
| Restarts the app and installs the update after it has been downloaded. It
 | |
| should only be called after `update-downloaded` has been emitted.
 | |
| 
 | |
| [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
 | 
