gisq-hb-file-lib
Version:
```
108 lines (104 loc) • 3.43 kB
JavaScript
var GisqDownLoadHbLib=(function(){
function downLoad(options){
var options=options||{};
this.path=options.path;
this.method=options.method||"GET";
this.options=options;
this.dtask=null;
this.init();
}
downLoad.prototype.init=function(){
if (this.dtask) {
console.log( "下载任务已创建!" );
return;
}
console.log("ddd"+typeof(plus))
if(typeof(plus)=="undefined") return;
var _this=this;
this.dtask = plus.downloader.createDownload( this.path, this.options,function(d, status) {
if (status == 200) {
//下载成功
//console.log('绝对路径:'+d.filename);
//这里传入的是相对路径,方便缓存显示,回调过去的是相对路径
if(this.options.complete)this.options.complete(d.filename);
} else {
//下载失败,需删除本地临时文件,否则下次进来时会检查到图片已存在
//console.log("下载失败=" + status + "==" + relativePath);
//dtask.abort();//文档描述:取消下载,删除临时文件;(但经测试临时文件没有删除,故使用delFile()方法删除);
/* if (relativePath != null) {
FileUtil.delFile(relativePath);
} */
if(this.options.error)this.options.error(originalUrl);
}
});
this.dtask.addEventListener( "statechanged", function(task,status){
if(!_this.dtask)return;
console.log(task)
switch(task.state) {
case 1: // 开始
//outLine( "开始下载..." );
if(_this.options.start)_this.options.start();
break;
case 2: // 已连接到服务器
//outLine( "链接到服务器..." );
if(_this.options.connected)_this.options.connected();
break;
case 3: // 已接收到数据
//outSet( "下载数据更新:" );
//outLine( task.downloadedSize+"/"+task.totalSize );
if(_this.options.downloading)_this.options.downloading(task.downloadedSize,task.totalSize);
break;
case 4: // 下载完成
//outSet( "下载完成!" );
//outLine( task.totalSize );
if(_this.options.finish)_this.options.finish(task.downloadedSize,task.totalSize);
break;
}
})
}
downLoad.prototype.startDownloadTask=function(){
if ( !this.dtask ) {
//errorCallback("请先创建下载任务!");
throw "请先创建下载任务!";
return;
}
this.dtask.start();
}
downLoad.prototype.pauseDownloadTask=function(){
if ( !this.dtask ) {
//errorCallback("请先创建下载任务!");
throw "请先创建下载任务!";
return;
}
dtask.pause();
}
downLoad.prototype.resumeDownloadTask=function(){
if ( !this.dtask ) {
//errorCallback("请先创建下载任务!");
throw "请先创建下载任务!";
return;
}
dtask.resume();
}
downLoad.prototype.cancelDownloadTask=function(){
if ( !this.dtask ) {
//errorCallback("请先创建下载任务!");
throw "请先创建下载任务!";
return;
}
dtask.abort();
}
downLoad.prototype.readLocalFileHbUrl=function(hbUrl,successCallback,errorCallback){
plus.io.resolveLocalFileSystemURL(hbUrl, function( fs ) {
// 可通过fs进行文件操作
if(successCallback)successCallback(fs)
}, function ( e ) {
if(errorCallback)errorCallback(e);
} );
}
downLoad.prototype.convertLocalFileFormHbUrl=function(hbUrl,successCallback,errorCallback){
return plus.io.convertLocalFileSystemURL(hbUrl);
}
return downLoad;
})();
export default GisqDownLoadHbLib;