HTML5+Downloader文件下载

Downloader模块管理网络文件下载任务,用于从服务器下载各种文件,并支持跨域访问操作。通过plus.downloader获取下载管理对象。Downloader下载使用HTTP的GET/POST方式请求下载文件,符合标准HTTP/HTTPS传输协议。

步骤:

1.创建下载对象

2.监听状态

3.开始下载

完整演示代码

<!DOCTYPE html>
<html>
<head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <title></title> <script src="js/mui.min.js"></script> <link href="css/mui.min.css" rel="stylesheet"/> </head> <body> <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">hello</h1> </header> <div class="mui-content"> <div style="padding:20px;"> <div style="line-height:38px;" id="dstatus">下载状态</div> <div class="mui-progressbar" id="psb1"> <span></span> </div> </div> <div style="padding:20px;"> <button id="download" onclick="createDownload();" class="mui-btn-blue mui-pull-right">开始下载</button> <button id="download" onclick="cDownload();" class="mui-btn-red mui-pull-right" style="margin-right:10px;">取消下载</button> </div> </div> <script> mui.init(); //初始化下载对象 var dtask = null; var psb1 = mui('#psb1'); var dstatus = mui('#dstatus'); function createDownload(){ var isFile1 = false; //判断文件是否已经下载 plus.io.resolveLocalFileSystemURL( '_downloads/Snip_V2.0_5771.dmg', function(entry){ if(entry.isFile){ mui.toast('已经下载'); } }, function(e){dBase();} ); } function dBase(){ if(dtask){mui.toast('下载任务已经存在'); return;} dtask = plus.downloader.createDownload( //创建下载任务 'http://snip.qq.com/resources/Snip_V2.0_5771.dmg', {method:"GET"}, //下载完成执行的回调函数 function(d, status){ mui.toast(d.filename); } ); dtask.addEventListener("statechanged", function(task,status){ //监听下载任务 if(!dtask){return;} switch(task.state) { case 1: // 开始 mui.toast("开始下载..."); break; case 2: // 已连接到服务器 mui.toast( "链接到服务器..."); break; case 3: // 已接收到数据 var progressVal = (task.downloadedSize/task.totalSize)*100; psb1.progressbar({progress:progressVal}).show(); dstatus[0].innerHTML = task.downloadedSize+'/'+task.totalSize; break; case 4: // 下载完成 //mui.toast( "下载完成!"); break; } }); dtask.start(); //开始下载 } function cDownload(){ if(!dtask){mui.toast('请先开始下载'); return;} dtask.abort(); dtask = null; } </script> </body> <script type="text/javascript"> </script> </html>

猜你喜欢

转载自www.cnblogs.com/Dukefish/p/9139792.html