クラス: DownloadItem
クラス: DownloadItem
リモートソースからのファイルダウンロードを制御します。
プロセス: メイン
このクラスは'electron'
モジュールからエクスポートされません。Electron APIの他のメソッドの戻り値としてのみ利用可能です。
DownloadItem
は、Electronのダウンロードアイテムを表すEventEmitterです。 Session
クラスのwill-download
イベントで使用され、ユーザーがダウンロードアイテムを制御できるようにします。
// In the main process.
const { BrowserWindow } = require('electron')
const 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'
戻り値
event
Eventstate
string -progressing
またはinterrupted
です。
ダウンロードが更新され、完了していないときに発行されます。
state
は次のいずれかになります。
progressing
- ダウンロードが進行中です。interrupted
- ダウンロードが中断され、再開できます。
イベント: 'done'
戻り値
event
Eventstate
string -completed
、cancelled
、またはinterrupted
です。
ダウンロードが終了状態になったときに発行されます。完了したダウンロード、( `downloadItem.cancel()`を介して)キャンセルされたダウンロード、および再開できない中断されたダウンロードが含まれます。
state
は次のいずれかになります。
completed
- ダウンロードが正常に完了しました。cancelled
- ダウンロードがキャンセルされました。- `interrupted` - ダウンロードが中断され、再開できません。
インスタンスメソッド
downloadItem
オブジェクトには、次のメソッドがあります。
downloadItem.setSavePath(path)
path
string - ダウンロードアイテムの保存ファイルパスを設定します。
このAPIは、セッションのwill-download
コールバック関数でのみ使用できます。 path
が存在しない場合、Electronはディレクトリを再帰的に作成しようとします。ユーザーがこのAPIを介して保存パスを設定しない場合、Electronは元のルーチンを使用して保存パスを決定します。これは通常、保存ダイアログを表示します。
downloadItem.getSavePath()
戻り値 string
- ダウンロードアイテムの保存パス。これは、downloadItem.setSavePath(path)
で設定されたパス、または表示された保存ダイアログから選択されたパスのいずれかになります。
downloadItem.setSaveDialogOptions(options)
このAPIを使用すると、ユーザーはデフォルトでダウンロードアイテム用に開く保存ダイアログのカスタムオプションを設定できます。 このAPIは、セッションの `will-download`コールバック関数でのみ使用できます。
downloadItem.getSaveDialogOptions()
戻り値 SaveDialogOptions
- downloadItem.setSaveDialogOptions(options)
によって以前に設定されたオブジェクトを返します。
downloadItem.pause()
ダウンロードを一時停止します。
downloadItem.isPaused()
戻り値 boolean
- ダウンロードが一時停止されているかどうか。
downloadItem.resume()
一時停止されたダウンロードを再開します。
**注意:** 再開可能なダウンロードを有効にするには、ダウンロード元のサーバーがレンジリクエストをサポートし、 `Last-Modified`と`ETag`ヘッダー値の両方を提供する必要があります。そうでない場合、 `resume()`は以前に受信したバイトを破棄し、最初からダウンロードを再開します。
downloadItem.canResume()
戻り値 boolean
- ダウンロードを再開できるかどうか。
downloadItem.cancel()
ダウンロード操作をキャンセルします。
downloadItem.getURL()
戻り値 string
- アイテムのダウンロード元のURL。
downloadItem.getMimeType()
戻り値 string
- ファイルのMIMEタイプ。
downloadItem.hasUserGesture()
戻り値 boolean
- ダウンロードにユーザー操作があるかどうか。
downloadItem.getFilename()
戻り値 string
- ダウンロードアイテムのファイル名。
**注意:** ファイル名は、ローカルディスクに保存されている実際のファイル名と常に同じとは限りません。ユーザーがプロンプト表示されたダウンロード保存ダイアログでファイル名を変更した場合、保存されたファイルの実際の名前は異なります。
downloadItem.getCurrentBytesPerSecond()
戻り値 Integer
- 現在のダウンロード速度(バイト/秒)。
downloadItem.getTotalBytes()
戻り値 Integer
- ダウンロードアイテムの合計サイズ(バイト単位)。
サイズが不明な場合は、0を返します。
downloadItem.getReceivedBytes()
戻り値 Integer
- ダウンロードアイテムの受信バイト数。
downloadItem.getPercentComplete()
戻り値 Integer
- ダウンロードの完了率(パーセント)。
downloadItem.getContentDisposition()
戻り値 string
- レスポンスヘッダーのContent-Dispositionフィールド。
downloadItem.getState()
戻り値 string
- 現在の状態。 progressing
、completed
、cancelled
、またはinterrupted
です。
**注意:** 次のメソッドは、セッションの再開時に`cancelled`アイテムを再開する場合に特に役立ちます。
downloadItem.getURLChain()
戻り値 string[]
- リダイレクトを含むアイテムの完全なURLチェーン。
downloadItem.getLastModifiedTime()
戻り値 string
- Last-Modifiedヘッダー値。
downloadItem.getETag()
戻り値 string
- ETagヘッダー値。
downloadItem.getStartTime()
Double
を返します - ダウンロードが開始されたUNIXエポックからの秒数です。
downloadItem.getEndTime()
Double
を返します - ダウンロードが終了したUNIXエポックからの秒数です。
インスタンスプロパティ
downloadItem.savePath
ダウンロードアイテムの保存ファイルパスを決定する string
プロパティです。
このプロパティは、セッションの will-download
コールバック関数でのみ使用できます。ユーザーがこのプロパティで保存パスを設定しない場合、Electronは元のルーチンを使用して保存パスを決定します。通常、これは保存ダイアログを表示します。