Electron-builder "update-available" 事件在新版本可用时未被触发
Electron-builder "update-available" event not being triggered when a new release is available
我正在尝试使用 electron-builder 的自动更新功能,我已经为 update-not-available
和 update-available
添加了监听器。如果没有新更新,update-not-available
事件会成功触发,但由于某种原因,当我的应用程序有新版本可用时,update-available
事件不会被触发,有没有办法检查事件发生的原因没有被触发或者添加日志查看是否有错误发生?
下面是我的 main.js
代码
const { autoUpdater } = require("electron-updater");
...other imports
app.on('ready', () => {
//do this
//Check for updates.
autoUpdater.checkForUpdates();
}
autoUpdater.on("update-not-available", (info) => {
const dialogOpts = {
type: 'info',
buttons: ['Ok'],
title: 'Application Update',
message: "Yay",
detail: 'No new updates.'
}
dialog.showMessageBox(dialogOpts, (response) => {
});
});
autoUpdater.on("update-available", (info) => {
const dialogOpts = {
type: 'info',
buttons: ['Ok'],
title: 'Application Update',
message: process.platform === 'win32' ? releaseNotes : releaseName,
detail: 'A new version is being downloaded.'
}
dialog.showMessageBox(dialogOpts, (response) => {
});
})
autoUpdater.on("update-downloaded", (info) => {
const dialogOpts = {
type: 'info',
buttons: ['Restart', 'Later'],
title: 'Application Update',
message: process.platform === 'win32' ? releaseNotes : releaseName,
detail: 'A new version has been downloaded. Restart the application to apply the updates.'
}
dialog.showMessageBox(dialogOpts, (response) => {
if (response === 0) autoUpdater.quitAndInstall()
});
});
我能够通过 运行 命令行中的可执行文件找到失败的原因。由于以下行
而失败
message: process.platform === 'win32' ? releaseNotes : releaseName,
因为变量未定义。通过将回调函数参数更改为包含 releaseName
和 releaseNotes
来解决此问题,例如
autoUpdater.on("update-available", (event, releaseNotes, releaseName) => {
如文档中所提供的那样 here。
我正在尝试使用 electron-builder 的自动更新功能,我已经为 update-not-available
和 update-available
添加了监听器。如果没有新更新,update-not-available
事件会成功触发,但由于某种原因,当我的应用程序有新版本可用时,update-available
事件不会被触发,有没有办法检查事件发生的原因没有被触发或者添加日志查看是否有错误发生?
下面是我的 main.js
const { autoUpdater } = require("electron-updater");
...other imports
app.on('ready', () => {
//do this
//Check for updates.
autoUpdater.checkForUpdates();
}
autoUpdater.on("update-not-available", (info) => {
const dialogOpts = {
type: 'info',
buttons: ['Ok'],
title: 'Application Update',
message: "Yay",
detail: 'No new updates.'
}
dialog.showMessageBox(dialogOpts, (response) => {
});
});
autoUpdater.on("update-available", (info) => {
const dialogOpts = {
type: 'info',
buttons: ['Ok'],
title: 'Application Update',
message: process.platform === 'win32' ? releaseNotes : releaseName,
detail: 'A new version is being downloaded.'
}
dialog.showMessageBox(dialogOpts, (response) => {
});
})
autoUpdater.on("update-downloaded", (info) => {
const dialogOpts = {
type: 'info',
buttons: ['Restart', 'Later'],
title: 'Application Update',
message: process.platform === 'win32' ? releaseNotes : releaseName,
detail: 'A new version has been downloaded. Restart the application to apply the updates.'
}
dialog.showMessageBox(dialogOpts, (response) => {
if (response === 0) autoUpdater.quitAndInstall()
});
});
我能够通过 运行 命令行中的可执行文件找到失败的原因。由于以下行
而失败message: process.platform === 'win32' ? releaseNotes : releaseName,
因为变量未定义。通过将回调函数参数更改为包含 releaseName
和 releaseNotes
来解决此问题,例如
autoUpdater.on("update-available", (event, releaseNotes, releaseName) => {
如文档中所提供的那样 here。