Zum Hauptteil springen

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 Event
  • state string - Kannprogressing (fortlaufend) oder interrupted (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 Event
  • state string - Kann completed (abgeschlossen), cancelled (abgebrochen) oder interrupted (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)

  • options SaveDialogOptions - Setzt die Optionen für den Speicherdialog. Dieses Objekt hat die gleichen Eigenschaften wie der options Parameter von dialog.showSaveDialog().

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.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.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.

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.