Spec-Zone.ru › Electron

autoUpdater

Разрешить приложениям автоматически обновляться.

Процесс: Основной

См. также: Подробное руководство по реализации обновлений в вашем приложении.

autoUpdater — это EventEmitter.

Сведения о платформах​

В настоящее время поддерживаются только macOS и Windows. Встроенной поддержки автообновления для Linux нет, поэтому рекомендуется использовать диспетчер пакетов дистрибутива для обновления приложения.

Кроме того, существуют некоторые незначительные различия на каждой платформе:

macOS​

В macOS модуль autoUpdater построен на основе Squirrel.Mac, что означает, что для его работы не требуется никакой специальной настройки. Для требований серверной части вы можете прочитать Поддержку сервера. Обратите внимание, что Безопасность транспортного уровня приложений (ATS) применяется ко всем запросам, выполняемым в рамках процесса обновления. Приложениям, которым необходимо отключить ATS, можно добавить ключ NSAllowsArbitraryLoads в их plist приложения.

Примечание: Ваше приложение должно быть подписано для автоматических обновлений в macOS. Это требование Squirrel.Mac.

Windows​

В Windows необходимо установить приложение на компьютер пользователя перед использованием autoUpdater, поэтому рекомендуется использовать пакет electron-winstaller, electron-forge или grunt-electron-installer для создания установщика Windows.

При использовании electron-winstaller или electron-forge, убедитесь, что вы не пытаетесь обновить приложение в первый раз при запуске (также см. это вопрос для получения дополнительной информации). Также рекомендуется использовать electron-squirrel-startup для получения ярлыков на рабочем столе вашего приложения.

Сгенерированный установщик Squirrel создаст значок ярлыка с идентификатором модели пользователя приложения в формате com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE, примерами являются com.squirrel.slack.Slack и com.squirrel.code.Code. Вы должны использовать тот же идентификатор для вашего приложения с API app.setAppUserModelId, иначе Windows не сможет правильно прикрепить ваше приложение к панели задач.

Как и Squirrel.Mac, Windows может размещать обновления на S3 или любом другом хосте статических файлов. Вы можете прочитать документацию Squirrel.Windows для получения более подробной информации о работе Squirrel.Windows.

События​

Объект autoUpdater испускает следующие события:

Событие: 'error'​

Возвращает:

  • error Ошибка

Возникает при возникновении ошибки во время обновления.

Событие: 'checking-for-update'​

Возникает при проверке наличия обновления.

Событие: 'update-available'​

Возникает, когда есть доступное обновление. Обновление загружается автоматически.

Событие: 'update-not-available'​

Возникает, когда доступных обновлений нет.

Событие: 'update-downloaded'​

Возвращает:

  • event Событие
  • releaseNotes строка
  • releaseName строка
  • releaseDate Дата
  • updateURL строка

Возникает, когда обновление загружено.

Только в Windows доступно releaseName.

Примечание: Обработка этого события не является строго необходимой. Загруженное обновление по-прежнему будет применено при следующем запуске приложения.

Событие: 'before-quit-for-update'​

Это событие испускается после того, как пользователь вызывает quitAndInstall().

При вызове этого API событие before-quit не испускается перед закрытием всех окон. В результате вам следует прослушивать это событие, если вы хотите выполнить действия перед закрытием окон во время завершения процесса, а также прослушивать before-quit.

Методы​

Объект autoUpdater имеет следующие методы:

autoUpdater.setFeedURL(options)​

  • options Объект
    • url строка
    • headers Record<string, string> (необязательно) macOS - Заголовки HTTP-запросов.
    • serverType строка (необязательно) macOS - Может быть json или default, см. Squirrel.Mac README для получения дополнительной информации.

Устанавливает url и инициализирует автообновление.

autoUpdater.getFeedURL()​

Возвращает string - текущий URL ленты обновлений.

autoUpdater.checkForUpdates()​

Запрашивает у сервера, есть ли обновление. Вам необходимо вызвать setFeedURL перед использованием этого API.

Примечание: Если обновление доступно, оно будет загружено автоматически. Вызов autoUpdater.checkForUpdates() дважды загрузит обновление дважды.

autoUpdater.quitAndInstall()​

Перезапускает приложение и устанавливает обновление после его загрузки. Его следует вызывать только после того, как было испущено событие update-downloaded.

Внутри вызов autoUpdater.quitAndInstall() сначала закроет все окна приложения и автоматически вызовет app.quit() после закрытия всех окон.

Примечание: Вызов этой функции для применения обновления не является строго необходимым, так как успешно загруженное обновление всегда будет применено при следующем запуске приложения.

© GitHub Inc.
Licensed under the MIT license.
https://www.electronjs.org/docs/latest/api/auto-updater

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API