|
本帖最后由 周周泽龙 于 2018-2-8 15:30 编辑
var timestamp = Date.parse(new Date());
filePath = 'file:///storage/emulated/0/XMS_Img/XMS_IMG'+timestamp+'.png'; //下载存放路径,数据库保存文件名
var url = imgURL; //图片下载地址
//var url = imgURL//"http://pic.ehouze.com/uploadfiles/129/K1/201802/00056/征信报告/129-K120180200056pic001.jpg"; //apk下载地址
var fileTransfer = new FileTransfer(); //创建文件传输对象
fileTransfer.onprogress = function(progressEvent) { //文件传输插件对象的进度方法调用
var percentProgress = parseInt((progressEvent.loaded / progressEvent.total) * 100)+ "%"; //获取已下载和总大小的百分比
if (progressEvent.lengthComputable)//获取浏览器返回HEAD信息包含CONTENT-LENGTH为TRUE 则执行下面
{
//$(".jindutiao span").css("width",percentProgress); //设置进度条的样式
//$(".jindutiao p").html(percentProgress); //设置进度条里面的数字
}
};
fileTransfer.download( //调用对象的下载方法,开始下载
url,
filePath,
function(entry) {
hint("文件已下载到XMS_Img目录下");//下载完成后调用方法
//这里下载完成后,将进度条隐藏或者写其他需要的代码
openFile();//下载完成进入安装页面
}.bind(this),
function(error) { //出错回调函数
hint("download error source " + error.source);
hint("download error target " + error.target);
hint("upload error code " + error.code);
},
false,
{
headers: {
"Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
}
}
); var openFile = function(event){
var localUrl = filePath;//下载文件本地保存路径
var open = cordova.plugins.disusered.open;
function success() {
}
function error(code) {
if (code === 1) {
hint('文件未在本地保存,请点击下载!');
} else {
hint('未知错误,请联系管理员!');
}
}
open(localUrl, success, error);
};
使用这些代码可以再安卓实现图片的下载和查看,但是IOS却不兼容这个方法,点击完全没有反应。之后更换了file的文件系统来处理但是这个方法不管是安卓还是IOS都不会生成文件夹,也不会添加文件查看文件。
var timestamp = Date.parse(new Date());
fileName = 'XMSImg'+timestamp+'.png'; //下载存放路径,数据库保存文件名
var url = imgURL; //图片下载地址
//下载图片
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
window.requestFileSystem(window.TEMPORARY, 5*1024*1024, initFS, errorHandler);
function initFS(fs){
hint("Welcome to Filesystem! It's showtime "); // Just to check if everything is OK
function createDir(rootDir, folders) {
rootDir.getDirectory(folders[0], {create: true}, function(dirEntry) {
if (folders.length) {
createDir(dirEntry, folders.slice(1));
fs.root.getDirectory('Documents', {}, function(dirEntry){
var dirReader = dirEntry.createReader();
dirReader.readEntries(function(entries) {
for(var i = 0; i < entries.length; i++) {
var entry = entries;
if (entry.isDirectory){
hint('Directory: ' + entry.fullPath);
}
else if (entry.isFile){
hint('File: ' + entry.fullPath);
}
}
}, errorHandler);
fs.root.getFile(fileName, {create: true}, function(fileEntry) {
var imgData = url;
fileEntry.createWriter(function(fileWriter) {
var url = new Blob([imgData],{type:"image/png"})
fileWriter.write(url);
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onloadend = function(e) {
console.info(file);
};
reader.readAsText(file);
}, errorHandler);
}, errorHandler);
}, errorHandler);
}, errorHandler);
}
}, errorHandler);
};
createDir(fs.root, 'Documents'.split('/'));
// place the functions you will learn bellow here
}
function errorHandler(err){
var msg = 'An error occured: ';
switch (err.code) {
case FileError.NOT_FOUND_ERR:
msg += 'File or directory not found';
break;
case FileError.NOT_READABLE_ERR:
msg += 'File or directory not readable';
break;
case FileError.PATH_EXISTS_ERR:
msg += 'File or directory already exists';
break;
case FileError.TYPE_MISMATCH_ERR:
msg += 'Invalid filetype';
break;
default:
msg += 'Unknown Error';
break;
};
hint(msg);
};
有没有大佬解答一下。
|
|