From 2e489351c15f2b6753babedbfe6b4b8de9d28418 Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Thu, 13 Jul 2023 00:52:43 +0800 Subject: [PATCH] feat(desktop): when file download completed, open folder --- client/desktop/src/main/main.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/client/desktop/src/main/main.ts b/client/desktop/src/main/main.ts index bea755b3..f539b531 100644 --- a/client/desktop/src/main/main.ts +++ b/client/desktop/src/main/main.ts @@ -212,6 +212,34 @@ const createMainWindow = async (url: string) => { return { action: 'deny' }; }); + // 下载操作相关处理 + mainWindow.webContents.session.on('will-download', (event, item) => { + // 下载开始前的回调函数 + item.on('updated', (event, state) => { + if (state === 'interrupted') { + log.warn('File download interrupted'); + } else if (state === 'progressing') { + if (item.isPaused()) { + log.warn('File download paused'); + } else { + log.info( + `File download process: ${item.getReceivedBytes()} / ${item.getTotalBytes()} Bytes` + ); + } + } + }); + + item.once('done', (event, state) => { + if (state === 'completed') { + log.info('File download completed'); + const filePath = item.getSavePath(); + shell.showItemInFolder(filePath); + } else { + log.error(`File download failed: ${state}`); + } + }); + }); + mainWindowState.manage(mainWindow); // Remove this if your app does not use auto updates