我正试图通过自动更新来更新我的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()
})
答案 0 :(得分:0)
电子生成器文档对于在任何autoUpdater实例事件中发出的对象都相当模糊。
经过反复摆弄,在网上搜索和阅读文档后,我发现autoUpdater事件中应该只有一个参数:
autoUpdater.on('update-available', (updateInfo) => {
//Callback function
});
updateInfo是一个任意参数名称,但参数是一个对象,其中包含releaseNotes,releaseDate和更新中的其他信息。我正在使用电子更新程序v4.0.6。
然后来源:electron.build/auto-update#module_electron-updater