См. Примечания к выпуску перед обновлением с помощью средства электронного обновления

Я пытаюсь обновить свое приложение Electron с помощью автообновления. Мне удалось заставить его работать нормально, пока он проверяет наличие обновлений, загружает обновление, устанавливает обновление и перезапускает приложение.

Но что мне действительно нужно, так это то, что я могу проверить, есть ли обновления; если есть, покажите примечания к выпуску, которые есть в моем файле latest.yml, и пользователь может согласиться или отменить обновление. (См. Снимок экрана ниже)  введите описание изображения здесь

Я пробовал проверять releaseNote, когда вхожу в событие, доступное для обновления, но второй параметр - «undefined».

Наряду с этим я не могу понять, как я могу показать прокручиваемый текстовый диалог со структурой кнопок да / нет.

На данный момент я сделал очень грубый messageBox, чтобы посмотреть, смогу ли я получить releaseNote из моего файла yml, но безуспешно. Итак, я новичок, когда дело касается Electron и создания / обновления приложений с его помощью; У меня официально нет идей.

Вот как теперь выглядит мое событие, доступное для обновления:

autoUpdater.on('update-available', (ev, info) => {
  sendStatusToWindow('Update available.' + info)
  dialog.showMessageBox({
    type: 'info',
    title: 'Found Updates',
    message: info.releaseNotes,
    buttons: ['Yes', 'No']
  }, (buttonIndex) => {
    if (buttonIndex === 0) {
      autoUpdater.downloadUpdate()
    }
  })
})

И мое событие с загруженным обновлением:

autoUpdater.on('update-downloaded', (ev, info) => {
  sendStatusToWindow('Update downloaded: ' + info)
  autoUpdater.quitAndInstall()
})

person CaptainCarl    schedule 08.08.2017    source источник


Ответы (1)


Документация по сборщику электронов довольно расплывчата в отношении объекта, который генерируется в любом из событий экземпляра autoUpdater.

После некоторого возни, поиска в Интернете и чтения документации я обнаружил, что в событиях autoUpdater должен быть только один параметр:

autoUpdater.on('update-available', (updateInfo) => { //Callback function });

updateInfo - это произвольное имя параметра, но параметр - это объект, который содержит releaseNotes, releaseDate и другую информацию из обновления. Я использую программу электронного обновления v4.0.6.

updateInfo тогда является объектом со следующими значениями в качестве свойств:  Свойства объекта updateInfo

Источник: electronic.build/auto-update#module_electron-updater

person Nerux95    schedule 04.03.2019
comment
Пожалуйста, отредактируйте свой ответ вместо того, чтобы добавлять дополнительную информацию в комментарии. - person Worthwelle; 05.03.2019