bugfix> download > 投稿

最近、electron-dlを使用してElectronアプリのコンテンツ更新を処理しようとしました。レンダラープロセスでユーザーにダウンロードの割合を表示しようとしていますが、メインプロセスから送信するための適切な構文が見つかりませんでした。

私の現在のコードは:

メインプロセス:

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 件
  • 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()));
    });
    
    

あなたの答え