網絡下載功能實現(downloader ) ---- HTML5+


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM