本文档部分API缺少示例代码,诚挚的邀请你参与到示例代码的编写中来,你可以在代码中发布2行自定义注释,内容自拟。 有意者可与刺鸟联系(QQ:4041990 Q群:7702175)
API简介
uexDownloaderMgr对象封装了用于下载文件,支持动态获取下载进度,支持断点下载等。
接口说明
方法 | 说明 |
uexDownloaderMgr.createDownloader(opId) | 创建一个下载对象,以opId作为标识。 |
uexDownloaderMgr.cbCreateDownloader(opId,dataType,data) | 创建下载对象的回调方法。 |
uexDownloaderMgr.download(inOpCode,inDLUrl,inSavePath,inMode) | 执行下载对象。可以间断的下载,下载进度如果再下载还是按照整体进度。 |
uexDownloaderMgr.onStatus(opId,fileSize,percent,status) | 执行下载对象。 |
uexDownloaderMgr.closeDownloader(opId) | 关闭一个下载对象,以opId作为标识。 |
uexDownloaderMgr.getInfo(inDLUrl) | 根据下载url获取下载对象的信息。回调函数是uexDownloaderMgr.cbGetInfo |
uexDownloaderMgr.cbGetInfo(opId,dataType,data) | uexDownloaderMgr.getInfo的回调函数。 |
uexDownloaderMgr.clearTask(inDLUrl,inClearMode) | 根据下载url清除任务。 |
createDownloader(opId) ▲
cbCreateDownloader(opId,dataType,data) ▲
参数名称 | 描述 |
opId | 操作ID。 |
dataType | 返回数据的数据类型为uex.cInt(值为2)。 |
data | 返回int型的数据,成功返回uex.cSuccess(值为0)或失败返回uex.cFailed(值为1)。 |
download(inOpCode,inDLUrl,inSavePath,inMode) ▲
参数名称 | 描述 |
inOpCode | 操作ID。 |
inDLUrl | 下载文件URL。 |
inSavePath | 下载后文件保存路径。 |
inMode | 下载模式;0表示不支持断点下载;1表示支持断点下载,但是保存地址必须与上次地址保持一致。 |
onStatus(opId,fileSize,percent,status) ▲
参数名称 | 描述 |
opId | 操作ID。 |
fileSize | 下载文件的大小,单位byte。fileSize = -1 时,就是表示得不到下载大小,无法计算比分比。 |
percent | 下载进度,值为0~100的整数值。 |
status | 下载状态,0表示正在下载,1表示下载完成,2表示下载出错。 |
closeDownloader(opId) ▲
getInfo(inDLUrl) ▲
cbGetInfo(opId,dataType,data) ▲
参数名称 | 描述 |
opId | 操作ID,在此函数中不起作用,可忽略。 |
dataType | 返回数据的数据类型为uex.cJSON(值为1)。 |
data | 返回的json型的数据。Json格式为{"fileSize":"123456","currentSize":"123","savePath":"var/mobile/Application/xxxxx/Documents/xxxxx.xx”,”lastTime”:”2012-5-23 11:27:12"} fileSize:文件总大小,单位B。 currentSize:已下载完成大小,单位B。该值只有当上次下载没有完成时才存在,否则返回“0”。savePath:文件保存路径,此路径为目标文件在磁盘上的绝对路径。 lastTime:上次下载的时间,时间格式为yyyy-MM-dd HH:mm:ss,该值只有当上次下载没有完成才存在,否则返回系统当前时间。 |
clearTask(inDLUrl,inClearMode) ▲
参数名称 | 描述 |
inDLUrl | 下载地址 |
inClearMode | 清除模式。0代表只清除此次下载任务,并不清除已经下载的目标临时文件。1代表清除此次下载任务,并且清除已经下载的目标临时文件。当目标文件已经成功下载到本地后,此操作不能清除此目标文件。默认为0。 |
// 本代码由寒暄提供,如有bug请和寒暄联系(QQ:457696322 Q群:7702175)
<!DOCTYPE html>
<html>
<head>
<title>AppCan API uexDownloaderMgr</title>
<meta charset='utf-8'>
<script>
function isDefine(para) {
if (typeof para == 'undefined' || para == '' || para == null || para == undefined) return false;
else return true;
}
function $$(id){
return document.getElementById(id);
}
var inOpCode = 1;
/**
* 创建下载对象
*/
function download(){
uexDownloaderMgr.createDownloader(inOpCode);
}
window.uexOnload = function(){
/**
* 下载状态监听方法
* @param {Object} opCode
* @param {Object} fileSize
* @param {Object} percent
* @param {Object} status
*/
uexDownloaderMgr.onStatus = function(opCode,fileSize,percent,status){
switch (status) {
case 0://下载过程中
$$('percentage').innerHTML ='文件大小:'+fileSize+'字节<br>下载进度:'+percent;
break;
case 1://下载完成
console.log('下载完成');
uexDownloaderMgr.closeDownloader(opCode);//下载完成要关闭下载对象
break;
case 2://下载失败
console.log('下载失败');
uexDownloaderMgr.closeDownloader(opCode);//下载失败要关闭下载对象
break;
}
}
var cText = 0;
var cJson = 1;
var cInt = 2;
/**
* 创建下载对象的回调方法
* @param {Object} opCode
* @param {Object} dataType
* @param {Object} data 0为成功;1为失败
*/
uexDownloaderMgr.cbCreateDownloader = function(opCode,dataType,data){
if(dataType==2&&data == 0){
console.log('创建成功');
startDownload();
}else{
console.log('创建失败');
}
}
uexWidgetOne.cbError = function(opCode,errorCode,errorInfo){
console.log(errorInfo);
}
/**
* 通过下载url获取下载对象的信息的回调方法
* @param {Object} opCode
* @param {Object} dataType
* @param {Object} data
*/
uexDownloaderMgr.cbGetInfo = function(opCode,dataType,data){
if(dataType==1){
if(!isDefine(data)){
console.log('无数据');
return;
}
console.log(data);
var info = eval('('+data+')');
$$('fileInfo').innerHTML ='文件路径:'+info.savePath+'<br>文件大小:'+info.fileSize+'<br>已下载:'+info.currentSize+'<br>下载时间:'+info.lastTime;
}
}
}
/**
* 执行下载
* download(String inOpCode, String inDLUrl, String inSavePath,String inMode)
* @param {string} inOpCode 操作id
* @param {string} inDLUrl 下载地址
* @param {string} inSavePath 保存的地址
* @param {string} inMode 下载模式 0不支持断点下载; 1支持断点下载
*/
function startDownload(){
uexDownloaderMgr.download(inOpCode,$$('downloadPath').value,$$('savedPath').value,'1');
}
/**
* 通过操作ID关闭下载对象
*/
function closeDownload(){
uexDownloaderMgr.closeDownloader(inOpCode);
}
/**
* 通过路径获取下载的文件信息
*/
function getInfo(){
uexDownloaderMgr.getInfo($$('downloadPath').value);
}
/**
* 通过路径清除未完成下载的任务
* clearTask(String inDLUrl,String inClearMode)
* @param {string} inDLUrl
* @param {string} inClearMode 清除模式。0代表只清除此次下载任务,并不清除已经下载的目标临时文件。
* 1代表清除此次下载任务,并且清除已经下载的目标临时文件。
* 当目标文件已经成功下载到本地后,此操作不能不能清除此目标文件。默认为0。
*/
function clearInfo(){
uexDownloaderMgr.clearTask($$('downloadPath').value);
}
</script>
</head>
<body>
<span>下载</span><br/>
<span>下载地址:</span><br/>
<input id='downloadPath' type='text' value='http://a.hiphotos.baidu.com/image/w%3D2048/sign=0c06965ad788d43ff0a996f24926d21b/4afbfbedab64034f88f5f329aec379310a551de0.jpg' ><br/>
<span>保存地址:</span><br/>
<input id='savedPath' type='text' value='wgt://data/down/mm.jpg' ><br/>
<input type='button' value='下载文件' onclick='download();'><br/>
<span>文件下载状态</span><br/>
<div id='percentage'></div><br/>
<span>结束下载</span><br/>
<input type='button' value='结束下载' onclick='closeDownload();'><br/>
<span>得到下载信息</span><br/>
<input type='button' value='得到下载信息' onclick='getInfo();'><br/>
<span>文件信息</span><br/>
<div id='fileInfo'></div><br/>
<span>清除下载信息</span><br/>
<input type='button' value='清除下载信息' onclick='clearInfo();'><br/>
</body>
</html>