在使用电子更新程序更新之前请参阅发行说明

Cap*_*arl 5 electron electron-builder

我正在尝试通过自动更新来更新我的 Electron 应用程序。我设法让它正常工作,同时它会检查更新、下载更新、安装更新并重新启动应用程序。

但我真正想要的是我可以检查是否有更新;如果在我的 latest.yml 文件中显示发行说明并且用户可以同意或取消更新。(见下面的截图) 在此处输入图片说明

我尝试在输入更新可用事件时检查 releaseNote,但第二个参数是“未定义”。

除此之外,我也无法弄清楚如何显示带有是/否按钮结构的可滚动文本对话框。

现在我制作了一个非常粗略的 messageBox 来查看是否可以从我的 yml 文件中获取 releaseNote,但没有运气。所以,当谈到 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()
    }
  })
})
Run Code Online (Sandbox Code Playgroud)

我的更新下载事件:

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

Ner*_*x95 3

对于在任何 autoUpdater 实例事件中发出的对象,电子构建器文档相当模糊。

经过相当多的摆弄、搜索网络和阅读文档后,我发现 autoUpdater 事件中应该只有一个参数:

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

updateInfo 是任意参数名称,但参数是一个对象,其中包含来自更新的releaseNotes、releaseDate 和其他信息。我使用的是 Electron-updater v4.0.6。

updateInfo 是一个具有以下值作为其属性的对象: updateInfo 对象属性

来源: Electron.build/auto-update#module_electron-updater