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

Posted

技术标签:

【中文标题】在使用电子更新器更新之前请参阅发行说明【英文标题】:See release notes before updating with electron-updater 【发布时间】:2018-01-15 13:52:40 【问题描述】:

我正在尝试通过自动更新来更新我的 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()
    
  )
)

还有我的更新下载事件:

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

【问题讨论】:

【参考方案1】:

关于在任何 autoUpdater 实例事件中发出的对象,electron-builder 文档相当模糊。

经过一番折腾,在网上搜索,阅读文档后,我发现 autoUpdater 事件中应该只有一个参数:

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

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

updateInfo 是一个以这些值作为其属性的对象:

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

【讨论】:

请edit您的答案,而不是在 cmets 中添加更多信息。

以上是关于在使用电子更新器更新之前请参阅发行说明的主要内容,如果未能解决你的问题,请参考以下文章

无法更新 Anaconda Spyder

xml 翻译不适用于通过布局更新文件注入的Breadcrumbs。请参阅以下XML代码:

Visual Studio 2017 RC 下载 最新版本的发行说明

ini IVZ:Nginx配置使用Lua作为身份验证模块。您必须使用lua支持安装nginx。请参阅Linux发行版的“openresty”或

请参阅其他工作簿中的 UDF 参数说明

html 在SDL媒体管理器播放器上使用endstate事件。请参阅http://jsfiddle.net/Jhorsman/NtQrN/