Electron 下载代理:统一管理页面下载文件
Electron 下载代理:统一管理页面下载文件
使用 Electron 的 session 下载事件,可以轻松实现代理所有页面的下载,并将下载文件保存到统一的文件夹中,类似 Chrome 的下载管理功能。
实现步骤
- 在创建
BrowserWindow时,设置session的download监听器:
const { app, BrowserWindow } = require('electron')
app.on('ready', () => {
const win = new BrowserWindow()
// 获取当前窗口的 session
const session = win.webContents.session
session.on('will-download', (event, item, webContents) => {
// 设置下载路径为统一的文件夹
item.setSavePath('/path/to/download/folder/' + item.getFilename())
})
win.loadURL('https://www.example.com')
})
- 在
session的download监听器中,设置下载文件路径:
通过 item.getFilename() 获取文件名,再拼接上统一的文件夹路径即可。
示例代码解析
session.on('will-download', (event, item, webContents) => { ... }):监听will-download事件,表示即将开始下载文件。item.setSavePath('/path/to/download/folder/' + item.getFilename()):设置下载文件保存路径,其中/path/to/download/folder/是你想要保存下载文件的文件夹路径。
总结
通过以上步骤,所有页面的下载都会被代理到 session 的 download 监听器中,文件也会被保存到统一的文件夹中,方便管理和操作。
原文地址: https://www.cveoy.top/t/topic/n9OY 著作权归作者所有。请勿转载和采集!