模塊: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>