API provides an advanced file download functionality that persists beyond app termination, runs in the background and continues even when the user closed/suspended the application. The plugin includes progress updates and primarily designed for long-term transfer operations for resources like video, music, and large images.
Sample usage
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);
});
});
Internal vs External (SD card) storage on Android
External Storage
resolve cordova.file.externalDataDirectory
directory in runtime
window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory, function(dirEntry) {
dirEntry.getFile(fileName, { create: true }, function (targetFile) {
...
})
}, function(error) {...})
Note, that device can be without external storage. In this case cordova.file.externalDataDirectory
will be null
so it should be checked before usage.
Internal Storage
resolve cordova.file.dataDirectory
directory in runtime
window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function(dirEntry) {
dirEntry.getFile(fileName, { create: true }, function (targetFile) {
...
})
}, function(error) {...})
Read File Plugin quirks for more details:
Supported platforms
Quirks