在electron-dl中向渲染器进程发送进度

时间:2018-05-25 05:09:50

标签: download electron

我最近尝试使用electron-dl来处理我的电子应用程序的内容更新。我试图在渲染器过程中向用户显示下载百分比,但我找不到从主进程发送它的正确语法。

我目前的代码是:

主要流程:

ipcMain.on("downloadUpdate", (event, info) => {
  download(BrowserWindow.getFocusedWindow(), info.url, info.properties)
    .then(dl => event.sender.send("updateDownloadCompleted", dl.getSavePath()));
});

渲染程序:

ipcRenderer.send("downloadUpdate", {
  url: "https://testurl.co/test.zip",
    properties: {
      directory:"/temp/updates",
        filename:"test.zip",
        showBadge:false,
        onProgress:function(){
          console.log("hi");
        },
      }
    });

我不知道如何将进度发送到渲染器进程。

感谢任何帮助...

编辑1: 我发现问题是 onProgress 参数在主进程中不作为函数读取。有谁知道解决方法?

1 个答案:

答案 0 :(得分:0)

如果您打印info.properties,我想它将不是onProgress属性。

尝试类似的方法应该可以。从属性配置中删除onProgress并稍后添加。

ipcMain.on("downloadUpdate", (event, info) => {
    info.properties.onProgress = function() {
        console.log('hi');
    }
    download(BrowserWindow.getFocusedWindow(), info.url, info.properties)
    .then(dl => event.sender.send("updateDownloadCompleted", dl.getSavePath()));
});