1. ホーム
  2. javascript

[解決済み] electron-dlの使用方法

2022-03-09 05:03:14

質問

パッケージを取得しようとしています エレクトロン-DL が動作しています。そのために、私は標準の エレクトロニック・クイックスタート のサンプルプロジェクトです。

残念ながら、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));
});
// ...

レンダラ.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 ダウンロードボタンを押すと

何が間違っているのでしょうか?

どなたか、electron-quick-start example を使って、electron-dl のインプリメンテーショ ンの簡単な動作例を示していただけませんか?

ご協力ありがとうございました。

解決方法は?

あなたが説明したとおりに再現したところ、私の場合は完璧に動作しました。

コンソールに以下のように出力されます。

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/"
})

パッケージは必要に応じてディレクトリを作成します。