如何使用electron-dl

axzmvihb  于 2023-03-10  发布在  Electron
关注(0)|答案(2)|浏览(303)

我正在尝试让包electron-dl工作。为此,我使用标准的electron-quick-start示例项目。
不幸的是,将electron-dl中的示例代码应用到electon-quick-start示例中对我来说不起作用,这意味着什么都没有发生,浏览器控制台或终端中也没有错误。
下面是我实现最小示例的方法:

主文件.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));
});
// ...

渲染器.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)
})

索引.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
我做错了什么?
有没有人可以提供一个简单的使用electron-quick-start实现electron-dl的工作示例?
谢谢你的帮忙!

kqhtkvqz

kqhtkvqz1#

完全重现了你描述的一切,对我来说完美无瑕。
以下是控制台上的输出:

http://ipv4.download.thinkbroadband.com/5MB.zip
DownloadItem {
  _events: { updated: [Function], done: [Function] },
  _eventsCount: 2 }

如果你不指定的话,包会自己决定文件的存储位置,你可以使用app.getPath('downloads')输出它默认选择的路径,对于我来说,这是我的主目录(Linux)。
如果要自己设置下载目录:

download(win, url, {
    directory: "/path/to/my/directory/"
})

包将根据需要创建目录。

ogsagwnx

ogsagwnx2#

我只想补充一点,我花了几天时间在这个问题上。我在我的项目上遇到了完全相同的事情。通过禁用我的防病毒盾,它停止了中断下载。请确保您为您的项目/任何visual studio代码进程创建了一个例外。我只是选择了整体禁用盾。
编辑:这样做的风险自担。

相关问题