Я провел целый день, пытаясь решить эту проблему. Файл загружается и сохраняется в памяти устройства, чем распакован.
// Url of file for download
var url = "http://exapmle/someUrl";
// File names only
var file = "aaa.zip";
$scope.contenutoDownload = function () {
// Save location
var targetPath = cordova.file.dataDirectory + file;
// Use cordovaFileTransfer to store the file in the device storage
$cordovaFileTransfer.download(url + file, targetPath, {}, true).then(function (result) {
console.log('File downloaded. ' + JSON.stringify(result));
$cordovaZip
.unzip(
result.nativeURL,
cordova.file.dataDirectory
).then(function () {
console.log('cordovaZip success');
//Delete zip file
if(cordova.platformId == 'ios') {
$cordovaFile.removeFile(cordova.file.tempDirectory,file);
} else {
$cordovaFile.removeFile(cordova.file.cacheDirectory,file);
}
}, function () {
console.log('cordovaZip error');
}, function (progressEvent) {
console.log(progressEvent);
}
);
}, function (error) {
console.log('Error with cordovaFileTransfer');
}, function (progress) {
$timeout(function () {
$scope.downloadProgress = ((progress.loaded / progress.total) * 100) + '%';
});
});
};
Результатом всегда является "ошибка cordovaZip", если пытаться передать любой аргумент функции (ошибка), объект не возвращается.
Похоже, что ваш путь неверен
$cordovaZip
.unzip(
result.nativeURL,
cordova.file.dataDirectory
).then(function () {
Должен или мог
$cordovaZip
.unzip(
targetPath,
cordova.file.dataDirectory
).then(function () {
не уверен, что дает nativeURL, я бы утешил все из них, чтобы увидеть, какие совпадения - также думал, что nativeURL - это метод nativeURL()