Die API bietet eine erweiterte Funktion zum Herunterladen von Dateien, die über die Beendigung der App hinaus bestehen bleibt, im Hintergrund ausgeführt wird und auch dann weiterläuft, wenn der Benutzer die Anwendung geschlossen/angehalten hat. Das Plugin enthält Fortschrittsaktualisierungen und ist in erster Linie für langfristige Übertragungsvorgänge für Ressourcen wie Videos, Musik und große Bilder konzipiert.
Beispielverwendung
var fileName = "PointerEventsCordovaPlugin.wmv", uriString = "http://media.ch9.ms/ch9/8c03/f4fe2512-59e5-4a07-bded-124b06ac8c03/PointerEventsCordovaPlugin.wmv"; // open target file for download window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) { fileSystem.root.getFile(fileName, { create: true }, function (targetFile) { var onSuccess, onError, onProgress; // plugin callbacks to track operation execution status and progress var downloader = new BackgroundTransfer.BackgroundDownloader(); // Create a new download operation. var download = downloader.createDownload(uriString, targetFile); // Start the download and persist the promise to be able to cancel the download. app.downloadPromise = download.startAsync().then(onSuccess, onError, onProgress); }); });
Interner vs. externer Speicher (SD-Karte) auf Android
Externer Speicher
Lösen Sie das Verzeichnis cordova.file.externalDataDirectory
zur Laufzeit auf
window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory, function(dirEntry) { dirEntry.getFile(fileName, { create: true }, function (targetFile) { ... }) }, function(error) {...})
Beachten Sie, dass das Gerät möglicherweise keinen externen Speicher hat. In diesem Fall ist cordova.file.externalDataDirectory
null
und sollte daher vor der Verwendung überprüft werden.
Interner Speicher
Lösen Sie das Verzeichnis cordova.file.dataDirectory
zur Laufzeit auf
window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function(dirEntry) { dirEntry.getFile(fileName, { create: true }, function (targetFile) { ... }) }, function(error) {...})
Weitere Informationen finden Sie im Abschnitt zu den Besonderheiten des Datei-Plugins:
https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/#android-quirks.
https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/#configuring-the-plugin-optiona
Unterstützte Plattformen
Windows8
Windows Phone8
iOS 7.0 oder höher
Android
Macken
Wenn ein Download-Vorgang abgeschlossen wurde, während sich die Anwendung im Hintergrund befand, wird der onSuccess-Rückruf aufgerufen, wenn die Anwendung aktiv wird.
Wenn ein Download-Vorgang beim Schließen der Anwendung abgeschlossen wurde, wird der onSuccess-Rückruf direkt nach dem ersten Aufruf von startAsync() für dieselbe URI aufgerufen, als ob die Datei sofort heruntergeladen worden wäre.
Ein neuer Download-Vorgang für dieselbe URI setzt einen ausstehenden Download fort, anstatt einen neuen auszulösen. Wenn für die angegebene URI keine ausstehenden Downloads gefunden werden, wird ein neuer Download gestartet. Die Zieldatei wird automatisch überschrieben, sobald der Download abgeschlossen ist.
Unter Android wird die temporäre Download-Datei auf einem externen Speicher erstellt (Einschränkung des DownloadManagers). Wenn also kein externer Speicher vorhanden ist, schlägt der Download fehl.