3

我正在使用电子开发我的应用程序,并且我正在使用电子更新程序显示一个窗口,询问用户是否要下载新的应用程序版本。我试图在这样的下载过程中在窗口中显示进度条。 进度条

我尝试使用进度条,但如果我安装它,电子更新程序将停止工作。现在我只能在开发模式下看到电子壳的进展。

autoUpdater.on('download-progress', (progressObj) => {
    let log_message = "Scaricamento aggiornamenti in corso...  \n";
    log_message = log_message +  "Velocita\' scaricamento: " + 
        progressObj.bytesPerSecond;
    log_message = log_message + ' - Scaricati ' + progressObj.percent + '%';
    log_message = log_message + ' (' + progressObj.transferred + "/" + 
        progressObj.total + ')';
    log.log('info', log_message);
})

先感谢您

4

1 回答 1

1

(我不是 100% 清楚你在问什么,而且我没有足够的声誉来添加评论......所以我会尽力而为)

我假设 autoUpdater 在主进程中,而不是在渲染器中。因此,您需要做的第一件事是将数据从进度更新中获取到正确的渲染器。您可以使用电子ipcMainipcRenderer模块来做到这一点。

在渲染器进程中获得数据后,您需要将其获取到进度条。如果你使用的是 redux,你可以调用 store 的 dispatch(),传递一个 downloadProgress 动作给它。

在我使用 redux 的应用程序中,我DownloadProgress在主进程中创建了一个操作,并通过 IPC 将其发送到渲染器。我建议您也这样做,因为您可能也想通过DownloadCancelledDownloadComplete行动。

如果这没有帮助,请澄清以下内容:

  • 请添加对您的问题不起作用的代码-这将有助于更准确地理解您要做什么
  • autoUpdate 是在主进程中运行,还是在渲染器中运行
  • 您正在使用哪个进度条实现(一个 npm 包?)以及您将如何向它发送数据(直接或通过商店?)
于 2019-04-13T05:08:23.700 回答