Downloader模块管理网络文件下载任务,用于从服务器下载各种文件,并支持跨域访问操作。通过plus.downloader获取下载管理对象。Downloader下载使用HTTP的GET/POST方式请求下载文件,符合标准HTTP/HTTPS传输协议。
参考链接 http://www.html5plus.org/doc/zh_cn/downloader.html
function DB_Down() {
/*设置下载路径*/
var db_name = '0001.db';
loadUrl = 'http://fire.idpmis.com/static/db/' + db_name
var filename = loadUrl.substring(loadUrl.lastIndexOf("/") + 1, loadUrl.length);
//设置保存路径
//io.dcloud.H5247757B后面的H5247757B是manifest.json文件中的appid
var relativePath = "file:///storage/emulated/0/Android/data/io.dcloud.H5247757B/downloads/" + filename;
plus.io.resolveLocalFileSystemURL(relativePath, function(entry) {
console.log("文件存在,先进行删除=" + relativePath);
delFile(relativePath)
}, function(e) {
console.log("文件不存在,联网下载=" + relativePath);
setImgFromNet(loadUrl, relativePath);
});
function setImgFromNet(loadUrl, relativePath) {
//创建下载任务
var dtask = plus.downloader.createDownload(loadUrl, {}, function(d, status) {
if(status == 200) {
//下载成功
plus.storage.setItem("relativePath", relativePath); //存储db文件路径名
console.log("下载成功=" + relativePath);
plusReady()
} else {
//下载失败,需删除本地临时文件,否则下次进来时会检查到文件已存在
console.log("下载失败=" + status + "==" + relativePath);
if(relativePath != null)
delFile(relativePath);
}
});
//启动下载任务
dtask.start();
}
/*删除指定文件*/
function delFile(relativePath) {
plus.io.resolveLocalFileSystemURL(relativePath, function(entry) {
entry.remove(function(entry) {
console.log("文件删除成功==" + relativePath);
setImgFromNet(loadUrl, relativePath);
}, function(e) {
console.log("文件删除失败=" + relativePath);
});
});
}
}
网友评论