【问题标题】:Electron autoupdater progress bar电子自动更新进度条
【发布时间】:2017-01-10 12:17:39
【问题描述】:

有什么方法可以设置一个进度条来在 Electron 中下载应用程序的新更新?我正在使用 Squirrel 和 electron-simple-updater 为 Windows 开发应用程序,我的问题是更新程序仅在开始下载更新和完成时才发出事件。我的更新有点大(大约 80MB),对于 ISP 速度较慢的用户来说,它有点 sux :(

【问题讨论】:

  • 找一样的,google也没用……
  • 这里也一样...使用电子简单更新程序不会触发“下载进度”。您是否设法找到解决方法?
  • @MarBVI 不,我被困在这里。如果您需要这个简单的东西,您必须自己完成所有工作,这意味着构建自己的更新程序,这真的很糟糕。那也许我会结束,因为对于这个问题似乎没有可行的解决方案:(
  • 实际上我什至无法下载更新。我收到一个错误“找不到松鼠”。我还在使用电子简单更新器并使用电子生成器创建我的 .exe。有什么可以帮我的吗?

标签: javascript electron squirrel.windows


【解决方案1】:
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);
}

使用此代码可以查看日志以查看下载进度

【讨论】:

  • 注意:包 require("electron-updater") 严格用于 Electron Builder,而不是原生 Electron。如果您不使用 Electron Builder,则无法导入和使用此包,如此处所示。
  • 有什么办法可以去掉progressObj.percent上的所有小数?
  • Math.round(progressObj.percent)
【解决方案2】:

也许这个链接给了你想要的东西

https://github.com/iffy/electron-updater-example/blob/master/main.js

autoUpdater.on('download-progress', (ev, progressObj) => {
  sendStatusToWindow('Download progress...');
})

【讨论】:

  • 它没有使用 Squirrel
  • 注意,这似乎不适用于 Electron 的原生 autoUpdater:electronjs.org/docs/api/auto-updater
  • @joshuapinter 正确,这不适用于电子的自动更新程序。这很可能是 Electron Builder 的自定义自动更新程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-08
  • 2021-03-17
  • 2013-03-08
  • 2015-09-13
  • 2020-11-05
  • 2022-01-17
  • 2014-04-09
相关资源
最近更新 更多