方法多种多样。
- [使用 文件管理插件] (http://www.ionic.wang/ng_cordova-file.html)
cordova plugin add cordova-plugin-file
2.controller.js 添加方法。
//2 new 接单后,点击某订单,显示订单的情况
.controller('DownCtrl', function($scope,$timeout,$cordovaFileTransfer){
$scope.downloadFile = function(pathurl) {
var url = pathurl;
var filename = url.split("/").pop();
alert(filename);
var targetPath = cordova.file.externalRootDirectory + filename;
var trustHosts = true
var options = {};
// alert(cordova.file.externalRootDirectory);
$cordovaFileTransfer.download(url, targetPath, options, trustHosts)
.then(function(result) {
// Success!
alert(JSON.stringify(result));
}, function(error) {
// Error
alert(JSON.stringify(error));
}, function (progress) {
$timeout(function () {
$scope.downloadProgress = (progress.loaded / progress.total) * 100;
})
});
}
}
3.view.js 执行方法
<ion-item>
<button class="button button-block button-calm" ng-click="downloadFile()"> 下载图片 </button>
</ion-item>
注意事项:
目录对应的android 真实目录。
console.log(cordova.file.externalApplicationStorageDirectory); //file:///storage/emulated/0/Android/data/com.bntake.driver.in/
console.log(cordova.file.dataDirectory); //file:///data/user/0/com.bntake.driver.in/files/
console.log(cordova.file.externalDataDirectory); //file:///storage/emulated/0/Android/data/com.bntake.driver.in/files/
console.log(cordova.file.externalRootDirectory);//file:///storage/emulated/0/
console.log(cordova.file.externalCacheDirectory); //file:///storage/emulated/0/Android/data/com.bntake.driver.in/cache/
console.log(cordova.file.applicationStorageDirectory); //file:///data/user/0/com.bntake.driver.in/
console.log(cordova.file.cacheDirectory); //file:///data/user/0/com.bntake.driver.in/cache/
console.log(cordova.file); //object
cordova.file.externalRootDirectory EACCES (Permission denied)"无法打开文件夹的权限问题。
修改 应用的文件夹读取权限。 在设置 ->应用->
某应用->权限->存储空间。(安卓系统的类似的功能,因为手机系统都做了适配)
请求超时的处理,和文件管理
$timeout,$cordovaFileTransfer
js 在index.html 的引入。与该项目无关。只有引入js文件,才可以在controller中引入model方法。
<script src="js/services.js"></script>
<script src="js/service_image.js"></script>
第一次创建项目,index.html插件的引入: 需要安装
<script src="lib/ngCordova/dist/ng-cordova.js"></script>