下载项管理
//主进程中
const {BrowserWindow} = require('electron')
let win = new BrowserWindow()
win.webContents.session.on('will-download', (event, item, webContents) => {
//设置保存路径,使Electron不提示保存对话框。
item.setSavePath('/tmp/save.pdf')
item.on('updated', (event, state) => {
if (state === 'interrupted') {
console.log('下载已中断,但可以恢复')
} else if (state === 'progressing') {
if (item.isPaused()) {
console.log('下载已暂停')
} else {
console.log(`Received bytes: ${item.getReceivedBytes()}`)
}
}
})
item.once('done', (event, state) => {
if (state === 'completed') {
console.log('下载成功')
} else {
console.log(`下载失败: ${state}`)
}
})
})实例事件
事件: 'updated'
事件: 'done'
实例方法
downloadItem.setSavePath(path)
downloadItem.setSavePath(path)downloadItem.getSavePath()
downloadItem.getSavePath()downloadItem.pause()
downloadItem.pause()downloadItem.isPaused()
downloadItem.isPaused()downloadItem.resume()
downloadItem.resume()downloadItem.canResume()
downloadItem.canResume()downloadItem.cancel()
downloadItem.cancel()downloadItem.getURL()
downloadItem.getURL()downloadItem.getMimeType()
downloadItem.getMimeType()downloadItem.hasUserGesture()
downloadItem.hasUserGesture()downloadItem.getFilename()
downloadItem.getFilename()downloadItem.getTotalBytes()
downloadItem.getTotalBytes()downloadItem.getReceivedBytes()
downloadItem.getReceivedBytes()downloadItem.getContentDisposition()
downloadItem.getContentDisposition()downloadItem.getState()
downloadItem.getState()downloadItem.getURLChain()
downloadItem.getURLChain()downloadItem.getLastModifiedTime()
downloadItem.getLastModifiedTime()downloadItem.getETag()
downloadItem.getETag()downloadItem.getStartTime()
downloadItem.getStartTime()Last updated