如何使用electron-dl

时间:2019-04-12 11:07:51

标签: javascript electron

我正在尝试使软件包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的实现示例吗?

感谢您的帮助!

2 个答案:

答案 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 代码流程设置例外。我只是选择整体禁用屏蔽。

编辑:风险自负。