Cordova plugin to download, store and unzip files with no cordova-file-transfer
dependency. cordova-file-transfer was recently depreciated.
Inspired by cordova-plugin-fastrde-downloader but with less features.
- Android 4.4+
- iOS 10+
- Cordova 5.0+
cordova plugin add cordova-plugin-downloader
This will also install cordova-plugin-file and cordova-plugin-zip if
not already installed.
var dl = new download();
dl.Initialize({
fileSystem : cordova.file.dataDirectory,
folder: "code",
unzip: true,
remove: true,
timeout: 0,
success: DownloaderSuccess,
error: DownloaderError,
headers: [
{
Key: 'Authorization',
Value: 'Basic ' + btoa(token)
}
]
});
dl.Get("https://www.yourdomain.com/somezipfile.zip");
function DownloaderError(err) {
console.log("download error: " + err);
alert("download error: " + err);
}
function DownloaderSuccess() {
console.log("yay!");
}| key | default | description |
|---|---|---|
fileSystem |
cordova.file.dataDirectory |
Cordova filesystem root to work in. More details here |
folder |
folder |
Directory within fileSystem to store downloaded file and unzip. Created if doesn't exist |
unzip |
false |
Set true to attempt to unzip the downloaded file |
remove |
false |
Set true to remove the zip file after unzipping |
timeout |
0 |
Download timeout in milliseconds. Set to 0 for infinite time |
success |
undefined |
Success callback |
error |
undefined |
Error callback. Argument indicates problem |
headers |
[] |
Set XHR Headers. Accepts a list of Key/Value pairs. [{Key: 'Authorization', Value: 'Basic xxxxxxx'}] |
| code | description |
|---|---|
| 0 | Cannot resolve filesystem |
| 1 | download.Get supported on Cordova only |
| 2 | Cannot create destination folder |
| 3 | Transfer error |
| 4 | Abort |
| 5 | Network error |
| 6 | Timeout |
| 7 | File create error |
| 8 | File write error |
| 9 | UNZIP error |
| 10 | Delete error #1 |
| 11 | Delete error #2 |
Chrome / Safari debugging reveals many basic problems but if this isn't
sufficient suggest adb logcat for Android and Xcode Window->Devices and Simulators
for iOS. Example Android with filter for app com.yourco.yourapp:
macOS / Linux:
adb logcat | grep `adb shell ps | grep com.yourco.yourapp | cut -c10-15`
Windows (assumes you have grep somewhere in your Windows path):
for /F %i in ('adb shell "ps|grep com.yourco.yourapp|cut -c10-15"') do set ANPID=%i&adb logcat|grep %ANPID%
...where com.yourco.yourapp is your App's package name.