我正在尝试下载一些图像文件并将其存储为使用Ionic框架的应用程序的离线可访问性目的。我使用了两个名为“ Cordova-plugin-file ”和“ Cordova-plugin-file transfer ”的Cordova插件。我的代码适用于Android,但在iOS平台上面临一个奇怪的问题。
成功时出错callbackId:FileTransfer552364304:TypeError:null 不是对象(评估'result.lengthComputable'), callbackFromNativecordova.js
有时代码有效,有时会抛出这个错误。此外,我无法从我的JavaScript代码中访问错误。有人可以帮忙吗?代码段如下:
downloadImage: function(url, fileName) {
var deferred = $q.defer();
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs) {
fs.root.getDirectory(
LOCAL_STORAGE_KEYS.app, {
create: true
},
function(dirEntry) {
// console.log(arguments);
dirEntry.getFile(
fileName, {
create: true,
exclusive: false
},
function(fe) {
console.log(arguments);
var p = fe.toURL();
console.log("In service the url path:", p);
fe.remove();
var ft = new FileTransfer();
console.log('File Transfer instance:',ft);
ft.download(
encodeURI(url),
p,
function(entry) {
console.log('In service the entry callback:',entry);
if (entry && entry.toURL) {
deferred.resolve(entry.toURL());
} else {
deferred.resolve();
}
},
function(err) {
console.log('Getting rejected:',err);
deferred.reject(err);
},
false,
null
);
},
function() {
deferred.reject(new Error('get file failed'));
}
);
}
);
},
function() {
deferred.reject(new Error('get directory failed'));
});
return deferred.promise;
}