类:downloadItem
类:downloadItem
控制来自于远程资源的文件下载。
Process: Main
此类不从 'electron'
模块导出. 它只能作为 Electron API 中其他方法的返回值。
DownloadItem
是一个 EventEmitter 事件触发器,在Electron中代表一个下载项。 它用于will-download
事件以及Session
类,并且允许用户控制下载项目。
// 在主进程中.
const { BrowserWindow } = require('electron')
const win = new BrowserWindow()
win.webContents.session.on('will-download', (event, item, webContents) => {
// 无需对话框提示, 直接将文件保存到路径
item.setSavePath('/tmp/save.pdf')
item.on('updated', (event, state) => {
if (state === 'interrupted') {
console.log('Download is interrupted but can be resumed')
} else if (state === 'progressing') {
if (item.isPaused()) {
console.log('Download is paused')
} else {
console.log(`Received bytes: ${item.getReceivedBytes()}`)
}
}
})
item.once('done', (event, state) => {
if (state === 'completed') {
console.log('Download successfully')
} else {
console.log(`Download failed: ${state}`)
}
})
})
实例事件
事件名: 'updated'
返回:
event
Eventstate
string - 可以是progressing
或interrupted
。
当下载正在执行但还没完成的时候发出。
状态可以是以下之一:
progressing
- 下载正在进行中interrupted
- 下载已经中断,可以恢复
事件名: 'done'
返回:
event
Eventstate
string - 可以是completed
,cancelled
或interrupted
。
当下载处于终止态时触发。 包括下载完成,取消下载 (通过 downloadItem.cancel()
),以及无法恢复的中断下载。
状态可以是以下之一:
completed
- 下载成功完成cancelled
- 下载已被取消interrupted
- 下载已经中断,无法恢复