|
electron-dl取得下载进度百分比
要获取下载进度百分比,您可以使用 electron-dl 模块提供的 session 对象来监视下载进度。以下示例代码,用于获取下载进度百分比:
- const { app, BrowserWindow, ipcMain } = require('electron');
- const { download } = require('electron-dl');
- const path = require('path');
- async function createWindow() {
- const mainWindow = new BrowserWindow();
- mainWindow.loadURL('https://example.com');
- mainWindow.webContents.on('did-finish-load', async () => {
- const files = [
- { url: 'https://example.com/file1.ext', directory: 'path/to/save/file1' },
- { url: 'https://example.com/file2.ext', directory: 'path/to/save/file2' },
- // Add more files with their respective URLs and directories
- ];
- for (const file of files) {
- const options = {
- directory: path.join(app.getPath('downloads'), file.directory),
- onProgress: (progress) => {
- console.log(`Download progress: ${Math.round(progress * 100)}%`);
- },
- };
- try {
- const dl = await download(mainWindow, file.url, options);
- console.log(`File saved to: ${dl.getSavePath()}`);
- } catch (error) {
- console.error('File download failed:', error);
- }
- }
- mainWindow.close();
- });
- }
- app.on('ready', createWindow);
复制代码 在这个示例代码中,我们向 options 对象添加了一个 onProgress 回调函数,该函数会在下载过程中被调用,并传递下载进度作为参数。在回调函数中,我们将下载进度百分比打印出来。
请注意,下载进度是一个介于0和1之间的小数,因此我们使用 Math.round 函数将其转换为百分比整数。
|
|