模块:downloader
Downloader模块管理网络文件下载任务,用于从服务器下载各种文件,并支持跨域访问操作。通过plus.downloader获取下载管理对象。Downloader下载使用HTTP的GET/POST方式请求下载文件,符合标准HTTP/HTTPS传输协议。
应用场景:音频下载,视频下载,文件下载,数据缓存(断网操作);
Downloader对象:downloader
plus.downloader.createDownload( url, options, completedCB );
对象:plus.downloader.createDownload(url,options,completedCB);
url:需要下载的文件的地址;
options:属性非常多:
method: (String 类型 )网络请求类型
支持http协议的“GET”、“POST”,默认为“GET”请求。
data: (String 类型 )POST请求时提交的数据
仅在网络请求类型method设置为"POST"时有效,"GET"请求时忽略此数据。
filename: (String 类型 )下载文件保存的路径
保存文件路径仅支持以"_downloads/"、"_doc/"、"_documents/"开头的字符串。 文件路径以文件后缀名结尾(如"_doc/download/a.doc")表明指定保存文件目录及名称,以“/”结尾则认为指定保存文件的目录(此时程序自动生成文件名)。 如果指定的文件已经存在,则自动在文件名后面加"(i)",其中i为数字,如果文件名称后面已经是此格式,则数字i递增,如"download(1).doc"。 默认保存目录为("_downloads"),并自动生成文件名称。
priority: (Number 类型 )下载任务的优先级
数值类型,数值越大优先级越高,默认优先级值为0。
timeout: (Number 类型 )下载任务超时时间
数值类型,单位为s(秒),默认值为120s。 超时时间为服务器响应请求的时间(不是下载任务完成的总时间),如果设置为0则表示永远不超时。
retry: (Number 类型 )下载任务重试次数
数值类型,默认为重试3次。
retryInterval: (Number 类型 )下载任务重试间隔时间
数值类型,单位为s(秒),默认值为30s。
Downloader对象属性和方法:
readonly attribute String id;
readonly attribute String url;
readonly attribute Number state;
readonly attribute DownloadOptions options;
readonly attribute String filename;
readonly attribute Number downloadedSize;
readonly attribute Number totalSize;
function void abort();
function void addEventListener( String event, function Callback listener, Boolean capture );
function String getAllResponseHeaders();
function String getResponseHeader( headerName );
function void pause();
function void resume();
function void setRequestHeader( String headerName, String headerValue );
function void start();
方法:
plus.downloader.clear( state );// 清除下载任务
plus.downloader.startAll(); // 开始所有的下载任务
具体示例:
<header class="mui-bar mui-bar-nav"> <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a> <h1 class="mui-title">下载管理</h1> </header> <div class="mui-content mui-content-padded"> <button type="button" id="btnDownload" class="mui-btn mui-btn-blue mui-btn-block">下载</button> <ul id="downloadlist"></ul> <img src="" id="downloadImg" alt="" /> </div> <script src='http://libs.baidu.com/jquery/1.8.3/jquery.min.js'></script> <script src="js/mui.min.js"></script> <script type="text/javascript"> mui.plusReady(function(){ var dtask=null; $("#btnDownload").bind('tap',function(){ // 第一步:创建下载任务 var url = "http://img5.img.9xiu.com/upload/roomimg/2017/11/05/27976195201433p14we39unu_370x280.jpg"; var options = {method:"GET"}; dtask = plus.downloader.createDownload(url,{ filename:"_doc/download/a.jpg" },function(download,status){ plus.io.resolveLocalFileSystemURL(download.filename,function(entry){ mui.alert('completed'); $("#downloadlist").append("<p>"+download.filename+"</p>"); $("#downloadlist").append("<p>"+entry.fullPath+"</p>"); $("#downloadImg").attr('src',entry.fullPath); }); }); dtask.start(); }); }); </script>