我正在尝试使软件包electron-dl工作。为此,我使用标准的electron-quick-start示例项目。
不幸的是,将示例代码从electron-dl应用于electon-quick-start示例对我不起作用,这意味着什么也没有发生,并且浏览器控制台或终端中也没有错误。
这是我实现最小示例的方式:
main.js
const {app, BrowserWindow, ipcMain} = require('electron')
const {download} = require('electron-dl');
let mainWindow
ipcMain.on('download-item', async (event, {url}) => {
event.sender.send('download-success', url)
console.log(url)
const win = BrowserWindow.getFocusedWindow();
console.log(await download(win, url));
});
// ...
renderer.js
const { ipcRenderer } = require('electron')
$('#btn-dl').click(() => {
const newURL = "http://ipv4.download.thinkbroadband.com/5MB.zip"
ipcRenderer.send('download-item', {url: newURL})
})
ipcRenderer.on('download-success', (event, arg) => {
console.log(arg)
})
index.html
<h1>Hello World!</h1>
<button id="btn-dl">Download</button>
<script>
// jQuery
$ = require('jquery')
// You can also require other files to run in this process
require('./renderer.js')
</script>
在此实现中,我只是在按下“下载”按钮时尝试下载文件5MB.zip
。
我在做什么错了?
有人可以使用电子快速启动示例提供一个简单的电子dl的实现示例吗?
感谢您的帮助!
答案 0 :(得分:1)
完全按照您的描述进行了创建,对我而言,它完美无缺。
在控制台上输出以下内容:
http://ipv4.download.thinkbroadband.com/5MB.zip
DownloadItem {
_events: { updated: [Function], done: [Function] },
_eventsCount: 2 }
如果未指定,包将自行确定location to store the file。您可以使用app.getPath('downloads')
输出默认情况下选择的路径。对我来说,这是我的主目录(Linux)。
如果您想自己设置下载目录:
download(win, url, {
directory: "/path/to/my/directory/"
})
该软件包将根据需要创建目录。
答案 1 :(得分:0)
我想补充一下,我花了几天时间来处理这个问题。我在我的项目中遇到了完全相同的事情。通过禁用我的防病毒防护罩,它停止中断下载。确保为您的项目/任何 Visual Studio 代码流程设置例外。我只是选择整体禁用屏蔽。
编辑:风险自负。