Electron自动更新进度条

9

有没有办法在Electron中为下载新应用程序更新设置进度条?我正在使用Squirrel和electron-simple-updater为Windows开发应用程序,我的问题是更新器只在开始下载更新和完成时提供事件。我的更新有点大(约80MB),对于网速较慢的用户来说有些困难 :(


1
寻找相同的内容,谷歌并没有帮助到我... - GWorking
这里也是一样的...使用electron-simple-updater时,'download-progress'没有被触发。你找到解决方法了吗? - MarBVI
@MarBVI 不好意思,我卡在这里了。如果你需要这个简单的东西,你必须自己动手建立更新程序,这真的很糟糕。因为似乎没有可行的解决方案来解决这个问题,所以也许我最终会走到这一步 :( - Pirozek
实际上,我甚至无法下载更新。我遇到了一个错误“找不到Squirrel”。我还使用了electrin-simple-updater并使用electron-builder创建我的.exe文件。你能给我一些帮助吗? - MarBVI
2个回答

6
const log = require('electron-log');
const { autoUpdater } = require("electron-updater");
autoUpdater.logger = log;
log.info('App starting...');    
autoUpdater.on('download-progress', (progressObj) => {
    let log_message = "Download speed: " + progressObj.bytesPerSecond;
    log_message = log_message + ' - Downloaded ' + progressObj.percent + '%';
    log_message = log_message + ' (' + progressObj.transferred + "/" + progressObj.total + ')';
    sendStatusToWindow(log_message);
})

function sendStatusToWindow(text) {
    log.info(text);
    homePageWindow.webContents.send('message', text);
}

使用此代码,可以查看日志以了解下载的进度。

2
注意:require("electron-updater")包严格用于Electron Builder,而不是原生的Electron。如果您没有使用Electron Builder,则不能像此处所示一样导入和使用此软件包。 - Joshua Pinter
1
有没有办法可以去掉 progressObj.percent 上的所有小数点? - futurelucas4502
3
Math.round(progressObj.percent) - cbartondock

4

1
不使用Squirrel - CMS
1
注意,这似乎无法与Electron的本地autoUpdater一起使用:https://electronjs.org/docs/api/auto-updater - Joshua Pinter
@joshuapinter 正确,这不是为了 electron 的自动更新器。很可能是为了 Electron Builder 的自定义自动更新器。 - Joshua Pinter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接