API は、アプリの終了後も継続し、バックグラウンドで実行され、ユーザーがアプリケーションを閉じたり一時停止したりした場合でも継続する高度なファイル ダウンロード機能を提供します。このプラグインには進行状況の更新が含まれており、主にビデオ、音楽、大きな画像などのリソースの長期転送操作向けに設計されています。
使用例
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); }); });
Android の内部ストレージと外部 (SD カード) ストレージ
外部ストレージ
実行時にcordova.file.externalDataDirectory
ディレクトリを解決します
window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory, function(dirEntry) { dirEntry.getFile(fileName, { create: true }, function (targetFile) { ... }) }, function(error) {...})
デバイスには外部ストレージがなくてもよいことに注意してください。この場合、 cordova.file.externalDataDirectory
null
になるため、使用前に確認する必要があります。
内部ストレージ
実行時にcordova.file.dataDirectory
ディレクトリを解決します
window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function(dirEntry) { dirEntry.getFile(fileName, { create: true }, function (targetFile) { ... }) }, function(error) {...})
詳細については、「ファイル プラグインの癖」を参照してください。
https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/#android-quirks。
https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/#cconfiguring-the-plugin-optiona
サポートされているプラットフォーム
Windows8
Windows Phone8
iOS 7.0以降
アンドロイド
個性
アプリケーションがバックグラウンドにあったときにダウンロード操作が完了した場合、アプリケーションがアクティブになったときに onSuccess コールバックが呼び出されます。
アプリケーションが閉じられたときにダウンロード操作が完了した場合、ファイルがすぐにダウンロードされたかのように、同じ URI に対して最初の startAsync() が呼び出された直後に onSuccess コールバックが呼び出されます。
同じ URI に対する新しいダウンロード操作では、新しいダウンロードがトリガーされるのではなく、保留中のダウンロードが再開されます。指定された URI で保留中のダウンロードが見つからない場合は、新しいダウンロードが開始され、ダウンロードが完了するとターゲット ファイルが自動的に上書きされます。
Androidでは一時ダウンロードファイルが外部ストレージ上に作成されるため(DownloadManagerの制限)、外部ストレージがない場合はダウンロードに失敗します。