HTML5+规范:Downloader(管理网络文件下载任务)实例

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);
            });
        });
    }
}

你可能感兴趣的:(HTML5+规范:Downloader(管理网络文件下载任务)实例)