Electron 下载代理:统一管理页面下载文件

使用 Electron 的 session 下载事件,可以轻松实现代理所有页面的下载,并将下载文件保存到统一的文件夹中,类似 Chrome 的下载管理功能。

实现步骤

  1. 在创建 BrowserWindow 时,设置 sessiondownload 监听器:
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')
})
  1. sessiondownload 监听器中,设置下载文件路径:

通过 item.getFilename() 获取文件名,再拼接上统一的文件夹路径即可。

示例代码解析

  • session.on('will-download', (event, item, webContents) => { ... }):监听 will-download 事件,表示即将开始下载文件。
  • item.setSavePath('/path/to/download/folder/' + item.getFilename()):设置下载文件保存路径,其中 /path/to/download/folder/ 是你想要保存下载文件的文件夹路径。

总结

通过以上步骤,所有页面的下载都会被代理到 sessiondownload 监听器中,文件也会被保存到统一的文件夹中,方便管理和操作。

Electron 下载代理:统一管理页面下载文件

原文地址: https://www.cveoy.top/t/topic/n9OY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录