3.6 KiB
DownloadItem
DownloadItem
は、Electronでアイテムのダウンロードを示すEventEmitterです。 Session
モジュールのwill-download
イベントで使用され、ダウンロードしたアイテムをコントロールすることができます。
// In the main process.
const {BrowserWindow} = require('electron')
let win = new BrowserWindow()
win.webContents.session.on('will-download', (event, item, webContents) => {
// Set the save path, making Electron not to prompt a save dialog.
item.setSavePath('/tmp/save.pdf')
item.on('updated', (event, state) => {
if (state === 'interrupted') {
console.log('Download is interrupted but can be resumed')
} else if (state === 'progressing') {
if (item.isPaused()) {
console.log('Download is paused')
} else {
console.log(`Received bytes: ${item.getReceivedBytes()}`)
}
}
})
item.once('done', (event, state) => {
if (state === 'completed') {
console.log('Download successfully')
} else {
console.log(`Download failed: ${state}`)
}
})
})
イベント
イベント: 'updated'
downloadItem
が更新されたときに出力されます。
イベント: 'done'
event
Eventstate
Stringcompleted
- ダウンロードが成功で完了cancelled
- ダウンロードをキャンセルinterrupted
- ファイルサーバーとの接続が切れてエラー
ダウンロードが終了状態になったときに出力されます。終了状態には、ダウンロードの完了、ダウンロードのキャンセル(downloadItem.cancel()
経由)、レジュームできないダウンロードの中断などです。
メソッド
downloadItem
オブジェクトは次のメソッドを持ちます:
downloadItem.setSavePath(path)
path
String - ダウンロードアイテムの保存ファイルパスを設定します。
APIはセッションのwill-download
コールバック関数のみで提供されます。API経由で保存パスを設定しなかった場合、Electronは保存パスを決めるための元のルーチン(通常は保存ダイアログ)を使用します。
downloadItem.pause()
ダウンロードをポーズします。
downloadItem.resume()
ポーズしたダウンロードを再開します。
downloadItem.cancel()
ダウンロード操作をキャンセルします。
downloadItem.getURL()
どのURLからアイテムをダウンロードするのかを示すString
を返します。
downloadItem.getMimeType()
mimeタイプを示すString
を返します。
downloadItem.hasUserGesture()
ダウンロードがユーザージェスチャーを持っているかどうかを示すBoolean
を返します。
downloadItem.getFilename()
ダウンロードアイテムのファイル名を示すString
を返します。
Note: ファイル名はローカルディスクに実際に保存するものといつも同じとは限りません。ダウンロード保存ダイアログでユーザーがファイル名を変更していると、保存するファイルの実際の名前は異なります。
downloadItem.getTotalBytes()
ダウンロードアイテムの合計バイトサイズを示すInteger
を返します。
サイズが不明な場合、0を返します。
downloadItem.getReceivedBytes()
ダウンロードしたアイテムの受信バイト数を示すInteger
を返します。
downloadItem.getContentDisposition()
レスポンスヘッダーからContent-Dispositionを示すString
を返します。