我正在创建一个离子/ cordova应用程序,我不确定问题是$ionicPlatform.ready
还是$cordovaFileTransfer.download
。首先,一切正常,但有一点问题,所以我只在iOS中遇到过这个问题。如果应用无权访问目录和/或应用尚未就绪,则cordova.file.*
会变为 null 。因此,为了使应用程序始终可以访问持久性目录,$cordovaFileTransfer.download
应该在$ionicPlatform.ready
或document.addEventListener('deviceready',function())
内,但是当我尝试下载时,除非我尝试下载最小化/关闭应用程序并再次打开它(我最小化的意思是当我按两次菜单按钮时)。
这是我缩短的示例代码:
$ionicPlatform.ready(function() {
try {
$scope.download = function(videoInfo) {
$cordovaFileTransfer.download(url, MyFiles, {}, true).then(
function(result) { //success download
$ionicLoading.hide();
var alertPopup = $ionicPopup.alert({
title: 'Download Successful!',
});
},
function(error) {
var alertPopup = $ionicPopup.alert({
title: 'Error',
template: JSON.stringify(error)
});
},
function(progress) {
//just some progress bar here
});
}).error(function() {
alert("error");
$ionicLoading.hide();
});
} //end of button download
}
catch (err) {
alert(JSON.stringify(err));
}
}) //end of ionicplatformready