API menyediakan fungsionalitas pengunduhan file tingkat lanjut yang tetap ada setelah penghentian aplikasi, berjalan di latar belakang dan berlanjut bahkan ketika pengguna menutup/menangguhkan aplikasi. Plugin ini mencakup pembaruan kemajuan dan terutama dirancang untuk operasi transfer jangka panjang untuk sumber daya seperti video, musik, dan gambar besar.
Contoh penggunaan
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); }); });
Penyimpanan Internal vs Eksternal (kartu SD) di Android
Penyimpanan Eksternal
selesaikan direktori cordova.file.externalDataDirectory
saat runtime
window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory, function(dirEntry) { dirEntry.getFile(fileName, { create: true }, function (targetFile) { ... }) }, function(error) {...})
Catatan, perangkat itu bisa tanpa penyimpanan eksternal. Dalam hal ini cordova.file.externalDataDirectory
akan bernilai null
sehingga harus diperiksa sebelum digunakan.
Penyimpanan Internal
selesaikan direktori cordova.file.dataDirectory
saat runtime
window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function(dirEntry) { dirEntry.getFile(fileName, { create: true }, function (targetFile) { ... }) }, function(error) {...})
Baca keunikan Plugin File untuk lebih jelasnya:
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
Platform yang didukung
Windows8
Windows Phone8
iOS 7.0 atau lebih baru
Android
Keunikan
Jika operasi pengunduhan selesai saat aplikasi berada di latar belakang, panggilan balik onSuccess dipanggil saat aplikasi menjadi aktif.
Jika operasi pengunduhan selesai saat aplikasi ditutup, callback onSuccess akan dipanggil tepat setelah startAsync() pertama dipanggil untuk uri yang sama, seolah-olah file telah segera diunduh.
Operasi pengunduhan baru untuk uri yang sama akan melanjutkan pengunduhan yang tertunda alih-alih memicu pengunduhan baru. Jika tidak ditemukan unduhan tertunda untuk uri yang ditentukan, unduhan baru dimulai, file target akan secara otomatis ditimpa setelah donwload selesai.
Di Android, file pengunduhan sementara dibuat di penyimpanan eksternal (batasan DownloadManager), jadi jika tidak ada penyimpanan eksternal, pengunduhan akan gagal.