Klasse: DownloadItem
Klasse: DownloadItem
Dateidownloads von entfernten Quellen steuern.
Prozess: Haupt
Diese Klasse wird nicht aus dem 'electron'
-Modul exportiert. Es ist nur als Rückgabewert anderer Methoden in der Electron-API verfügbar.
DownloadItem
ist ein EventEmitter welches ein Download-Element in Electron darstellt. Es wird im will-download
Event der Session
Klasse verwendet und erlaubt Benutzern den Download zu steuern.
// Im Hauptprozess.
const { BrowserWindow } = require('electron')
const win = new BrowserWindow()
win.webContents.session.on('will-download', (event, item, webContents) => {
// Setzt den Speicherpfad, so dass Electron keinen Dialog zum Speichern anzeigt.
item.setSavePath('/tmp/save.pdf')
item.on('updated', (event, state) => {
if (state === 'interrupted') {
console.log('Der Download wird unterbrochen, kann aber fortgesetzt werden')
} else if (state === 'progressing') {
if (item.isPaused()) {
console.log('Download ist pausiert')
} else {
console.log(`Empfangene Bytes: ${item.getReceivedBytes()}`)
}
}
})
item.once('done', (event, state) => {
if (state === 'completed') {
console.log('Erfolgreicher Download')
} else {
console.log(`Download fehlgeschlagen: ${state}`)
}
})
})
Instanz-Ereignisse
Event: 'updated'
Kehrt zurück:
event
Eventstate
string - Kannprogressing
(fortlaufend) oderinterrupted
(unterbrochen) sein.
Ausgelöst, wenn sich der Status des Downloads geändert hat, aber der Download nicht fertig ist.
Der state
kann einer der folgenden sein:
progressing
- Der Download ist im Gange.interrupted
- Der Download wurde unterbrochen und kann fortgesetzt werden.
Event: 'done'
Kehrt zurück:
event
Eventstate
string - Kanncompleted
(abgeschlossen),cancelled
(abgebrochen) oderinterrupted
(unterbrochen) sein.
Ausgelöst, wenn der Download beendet wurde. Dies umfasst einen abgeschlossenen Download, ein abgebrochener Download (via downloadItem.cancel()
) und ein unterbrochener Download, der nicht mehr fortgesetzt werden kann.
Der state
kann einer der folgenden sein:
completed
- Der Download wurde erfolgreich abgeschlossen.cancelled
- Der Download wurde abgebrochen.interrupted
- Der Download wurde unterbrochen und kann nicht fortgesetzt werden.
Beispiel Methoden
Das downloadItem
Objekt hat die folgenden Methoden:
downloadItem.setSavePath(path)
path
string - Legt den Speicherpfad der heruntergeladenen Datei fest.
Die API ist nur in der Callback Funktion will-download
der Sitzung verfügbar. Wenn path
nicht existiert, wird Electron versuchen, das Verzeichnis rekursiv zu erstellen. Wenn der Benutzer den Speicherpfad nicht über die API einstellt, verwendet Electron die ursprüngliche Routine, um den Speicherpfad zu bestimmen; dies führt normalerweise zu einem Speicherdialog.
downloadItem.getSavePath()
Rückgabe von string
- Der Speicherpfad des heruntergeladenen Elements. Dies wird entweder der Pfad sein der über downloadItem.setSavePath(path)
eingestellt wurde oder der Pfad, der im angezeigten Speichern Dialog ausgewählt wurde.
downloadItem.setSaveDialogOptions(options)
Diese API ermöglicht es dem Benutzer, benutzerdefinierte Optionen für den Speicherdialog festzulegen, welche sich standardmäßig für das Download-Element öffnen werden. Die API ist nur in der Callback Funktion will-download
der Sitzung verfügbar.
downloadItem.getSaveDialogOptions()
Gibt SaveDialogOptions
zurück - Gibt das zuvor von downloadItem.setSaveDialogOptions(options)
gesetzte Objekt zurück.
downloadItem.pause()
Pausiert den Download.
downloadItem.isPaused()
Gibt boolean
zurück - Ob der Download angehalten ist.
downloadItem.resume()
Setzt den Download fort, der angehalten wurde.
Hinweis: Um fortsetzbare Downloads zu ermöglichen, muss der Server, von dem die Downloads stammen, Bereichsanfragen unterstützen und sowohl Last-Modified
als auch ETag
Header Werte bereitstellen. Andernfalls verwirft resume()
die zuvor empfangenen Bytes und beginnt den Download von vorne.
downloadItem.canResume()
Gibt boolean
zurück - Ob der Download fortgeführt werden kann.
downloadItem.cancel()
Abbruch des Download-Vorgangs.
downloadItem.getURL()
Gibt string
zurück - Die Ursprungs-URL, von der das Element heruntergeladen wird.
downloadItem.getMimeType()
Gibt string
zurück - Der Dateityp.
downloadItem.hasUserGesture()
Gibt boolean
zurück - Ob der Download Benutzergesten hat.
downloadItem.getFilename()
Rückgabe von string
- Der Dateiname des heruntergeladenen Objekts.
Hinweis: Der Dateiname ist nicht immer derselbe wie der tatsächlich auf der lokalen Festplatte. Wenn der Benutzer den Dateinamen in einem Dialogfeld zum Speichern des Downloads ändert, wird der wird der tatsächliche Name der gespeicherten Datei unterschiedlich sein.
downloadItem.getCurrentBytesPerSecond()
Returns Integer
- The current download speed in bytes per second.
downloadItem.getTotalBytes()
Rückgabe von Integer
- Die Gesamtgröße des heruntergeladenen Objekts in Bytes.
Wenn die Größe unbekannt ist, wird 0 zurückgegeben.
downloadItem.getReceivedBytes()
Rückgabe von Integer
- Die empfangenen Bytes des Download Objekts.
downloadItem.getPercentComplete()
Returns Integer
- The download completion in percent.
downloadItem.getContentDisposition()
Rückgabe von string
- Das Feld Content-Disposition aus dem Antwort Header.
downloadItem.getState()
Rückgabe von string
- Der aktuelle Zustand. Kann progressing
, completed
, cancelled
oder interrupted
sein.
Hinweis: Die folgenden Methoden sind besonders nützlich, um ein cancelled
Objekt wieder aufzunehmen, wenn die Sitzung neu gestartet wird.
downloadItem.getURLChain()
Rückgabe von string[]
- Die vollständige URL Kette des Elements einschließlich aller Weiterleitungen.
downloadItem.getLastModifiedTime()
Rückgabe von string
- Zuletzt geänderter Header Wert.
downloadItem.getETag()
Rückgabe von string
- ETag Header Wert.
downloadItem.getStartTime()
Rückgabe von Double
- Anzahl der Sekunden seit der UNIX-Epoche, in der der Dowload gestartet wurde.
downloadItem.getEndTime()
Returns Double
- Number of seconds since the UNIX epoch when the download ended.
Instanz Eigenschaften
downloadItem.savePath
Eine string
Eigenschaft, die den Speicherpfad des Download-Elements bestimmt.
Die Eigenschaft ist nur in der Callback-Funktion will-download
der Sitzung verfügbar. Wenn der Benutzer den Speicherpfad nicht über die Eigenschaft einstellt, verwendet Electron die ursprüngliche Routine, um den Speicherpfad zu bestimmen; dies führt normalerweise zu einem Speicherdialog.