0.0.4 • Published 6 years ago

cordova-plugin-downloader v0.0.4

Weekly downloads
85
License
Apache 2.0
Repository
github
Last release
6 years ago

cordova-plugin-downloader

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.

Compatibility

  • Android 4.4+
  • iOS 10+
  • Cordova 5.0+

Installation

cordova plugin add cordova-plugin-downloader

This will also install cordova-plugin-file and cordova-plugin-zip if not already installed.

Basic Usage

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!");
}

Initialization

keydefaultdescription
fileSystemcordova.file.dataDirectoryCordova filesystem root to work in. More details here
folderfolderDirectory within fileSystem to store downloaded file and unzip. Created if doesn't exist
unzipfalseSet true to attempt to unzip the downloaded file
removefalseSet true to remove the zip file after unzipping
timeout0Download timeout in milliseconds. Set to 0 for infinite time
successundefinedSuccess callback
errorundefinedError callback. Argument indicates problem
headers[]Set XHR Headers. Accepts a list of Key/Value pairs. [{Key: 'Authorization', Value: 'Basic xxxxxxx'}]

Error Codes

codedescription
0Cannot resolve filesystem
1download.Get supported on Cordova only
2Cannot create destination folder
3Transfer error
4Abort
5Network error
6Timeout
7File create error
8File write error
9UNZIP error
10Delete error #1
11Delete error #2

Troubleshooting

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.