Downloader

稿件来源: 互联网   撰稿作者: 匿名   发表日期: 2015-03-23   阅读次数: 119   查看权限: 游客查看

Downloader模块管理文件下载,用于从网络下载各种文件,可支持跨域访问操作。通过plus.downloader获取下载管理对象。

方法:

对象:

回调方法:

createDownload

新建下载任务

Download plus.downloader.createDownload( url, option, completedCB );

说明:

请求下载管理创建新的下载任务,创建成功则返回Download对象,用于管理下载任务的各种状态。

参数:

  • url (DOMString) 可选 要下载文件的url地址,仅支持网络资源地址。必须是http或https协议。
  • option (DownloadOption) 可选 可通过此参数设置自定义任务属性,自定义属性值仅支持字符串类型。
  • completedCB (DownloadCompletedCallback) 可选 下载任务完成后的回调

返回值:

新建的下载任务对象

示例:

<!DOCTYPE html>
<html>
	<head>
	<meta charset="utf-8">
	<title>Downloader Example</title>
	<script type="text/javascript">
// 扩展API加载完毕后调用onPlusReady回调函数 
document.addEventListener( "plusready", onPlusReady, false );
var r = null; 
// 扩展API加载完毕,现在可以正常调用扩展API 
function onPlusReady() {
}
// 创建下载任务
function createDownload() {
	var dtask = plus.downloader.createDownload( "http://www.abc.com/a.doc", {}, function ( d, status ) {
		// 下载完成
		if ( status == 200 ) { 
			alert( "Download success: " + d.filename );
		} else {
			 alert( "Download failed: " + status ); 
		}
	});
	//dtask.addEventListener( "statechanged", onStateChanged, false );
	dtask.start(); 
}
	</script>
	</head>
	<body>
	<input id="download" type="button" value="Create download task" onclick="createDownload();"></input>
	</body>
</html>

enumerate

枚举应用的所有下载任务

plus.downloader.enumerate( enumCB, state );

说明:

枚举指定状态的下载任务列表。 枚举操作完成后通过enumCB回调返回结果。

参数:

返回值:

示例:

<!DOCTYPE html>
<html>
	<head>
	<meta charset="utf-8">
	<title>Downloader Example</title>
	<script type="text/javascript">
// 扩展API加载完毕后调用onPlusReady回调函数 
document.addEventListener( "plusready", onPlusReady, false );
var r = null; 
// 扩展API加载完毕,现在可以正常调用扩展API 
function onPlusReady() {
		plus.downloader.enumerate( function ( tasks ) {
		alert( "Unfinished task count: " + tasks.length );
	} );
}
	</script>
	</head>
	<body>
	Enumerate all unfinished download task.
	</body>
</html>

clear

清除下载任务

plus.downloader.clear( state );

说明:

清除指定状态的下载任务。

参数:

  • state (DownloadState) 可选 要清除下载任务的状态,默认值为所有已完成的下载任务

返回值:

示例:

<!DOCTYPE html>
<html>
	<head>
	<meta charset="utf-8">
	<title>Downloader Example</title>
	<script type="text/javascript">
// 扩展API加载完毕后调用onPlusReady回调函数 
document.addEventListener( "plusready", onPlusReady, false );
var r = null; 
// 扩展API加载完毕,现在可以正常调用扩展API 
function onPlusReady() {
	plus.downloader.clear();
}
	</script>
	</head>
	<body>
	Clear all finished download task.
	</body>
</html>

startAll

开始所有下载任务

plus.downloader.startAll();

说明:

开始所有处于暂停状态的下载任务。 若下载任务数超过可并发处理的总数,超出的任务处于调度状态(等待下载),当有任务完成时根据调度状态任务的优先级选择任务开始下载。

返回值:

示例:

<!DOCTYPE html>
<html>
	<head>
	<meta charset="utf-8">
	<title>Downloader Example</title>
	<script type="text/javascript">
// 扩展API加载完毕后调用onPlusReady回调函数 
document.addEventListener( "plusready", onPlusReady, false );
var r = null; 
// 扩展API加载完毕,现在可以正常调用扩展API 
function onPlusReady() {
	plus.downloader.startAll();
}
	</script>
	</head>
	<body>
	Start download task.
	</body>
</html>

Download

Download对象用于管理单个下载任务

interface Download {
	readonly attribute DOMString id;
	readonly attribute DOMString url;
	readonly attribute Number state;
	readonly attribute DownloadOption options;
	readonly attribute DOMString filename; 
	function void start();
	function void pause();
	function void resume();
	function void abort();
	function void addEventListener( DOMString event, function Callback listener, Boolean capture );
}

方法:

属性:

  • id:DOMString,只读属性,在创建任务时系统自动分配,用于标识下载任务的唯一性。
  • url:DOMString,只读属性,下载任务的服务器地址,在创建任务时设置的值。
  • state:DownloadState,只读属性,下载任务的状态,参考DownloadState,在DownloadCompleteCallback事件和DownloadStateChangedCallback事件触发时更新。
  • options:DownloadOption,只读属性,下载任务配置的参数,参考DownloadOption。
  • filename:DOMString,只读属性,下载任务在本地保存的文件路径,在DownloadCompleteCallback事件和DownloadStateChangedCallback事件触发时更新。
  • downloadedSize:Number,只读属性,下载任务已完成下载文件的大小,单位为字节(byte)。在DownloadCompleteCallback事件和DownloadStateChangedCallback事件触发时更新。
  • totalSize:Number,只读属性,下载任务要下载文件的总大小,单位为字节(byte)。在DownloadCompleteCallback事件和DownloadStateChangedCallback事件触发时更新。 在连接到服务器获取大小之前其值为0。

start

开始下载任务

void download.start();

说明:

开始下载任务,如果任务已经处于开始状态则无任何响应。 通常在创建任务或暂停任务后重新开始。

返回值:

示例:

<!DOCTYPE html>
<html>
	<head>
	<meta charset="utf-8">
	<title>Downloader Example</title>
	<script type="text/javascript">
// 扩展API加载完毕后调用onPlusReady回调函数 
document.addEventListener( "plusready", onPlusReady, false );
var r = null; 
// 扩展API加载完毕,现在可以正常调用扩展API 
function onPlusReady() {
}
// 创建下载任务
function createDownload() {
	var dtask = plus.downloader.createDownload( "http://www.abc.com/a.doc", {}, function ( d, status ) {
		// 下载完成
		if ( status == 200 ) { 
			alert( "Download success: " + d.filename );
		} else {
			alert( "Download failed: " + status ); 
		}
	});
	//dtask.addEventListener( "statechanged", onStateChanged, false );
	dtask.start(); 
}
	</script>
	</head>
	<body>
	<input id="download" type="button" value="Create download task" onclick="createDownload();"></input>
	</body>
</html>

pause

暂停下载任务

void download.pause();

说明:

暂停下载任务,如果任务已经处于初始状态或暂停状态则无任何响应。 通常在任务已开始后暂停任务。

返回值:

示例:

<!DOCTYPE html>
<html>
	<head>
	<meta charset="utf-8">
	<title>Downloader Example</title>
	<script type="text/javascript">
// 扩展API加载完毕后调用onPlusReady回调函数 
document.addEventListener( "plusready", onPlusReady, false );
var dtask = null;
// 扩展API加载完毕,现在可以正常调用扩展API 
function onPlusReady() {
}
// 创建下载任务
function createDownload() {
	dtask = plus.downloader.createDownload( "http://www.abc.com/a.doc", {}, function ( d, status ) {
		// 下载完成
		if ( status == 200 ) { 
			alert( "Download success: " + d.filename );
		} else {
			alert( "Download failed: " + status ); 
		}
	});
	//dtask.addEventListener( "statechanged", onStateChanged, false );
	dtask.start(); 
}
// 暂停下载任务 
function pauseDownload() {
	dtask.pause();
}
	</script>
	</head>
	<body>
	<input type="button" value="Create download task" onclick="createDownload();"></input>
	<input type="button" value="Pause download task" onclick="pauseDownload();"></input>
	</body>
</html>

resume

继续下载任务

void download.resume();

说明:

继续停止的下载任务,如果任务已经处于下载状态则无任何响应。 通常在任务已暂停任务后继续下载任务。

返回值:

示例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Downloader Example</title>
<script type="text/javascript">
// 扩展API加载完毕后调用onPlusReady回调函数
document.addEventListener( "plusready", onPlusReady, false );
var dtask = null;
// 扩展API加载完毕,现在可以正常调用扩展API
function onPlusReady() {
}
// 创建下载任务
function createDownload() {
	dtask = plus.downloader.createDownload( "http://www.abc.com/a.doc", {}, function ( d, status ) {
		// 下载完成
		if ( status == 200 ) {
			alert( "Download success: " + d.filename );
		} else {
			alert( "Download failed: " + status );
		}
	});
	//dtask.addEventListener( "statechanged", onStateChanged, false );
	dtask.start();
}
// 暂停下载任务
function pauseDownload() {
	dtask.pause();
}
// 恢复下载任务
function resumeDownload() {
	dtask.resume();
}
</script>
</head>
<body>
	<input type="button" value="Create download task" onclick="createDownload();"></input>
	<input type="button" value="Pause download task" onclick="pauseDownload();"></input>
	<input type="button" value="Resume download task" onclick="resumeDownload();"></input>
</body>
</html>

abort

取消下载任务

void download.abort();

说明:

取消下载任务,如果任务已经取消则无任何响应。 如果任务未完成,将删除已下载的临时文件。 如果任务已完成,将不删除已下载的文件。

返回值:

示例:

<!DOCTYPE html>
<html>
	<head>
	<meta charset="utf-8">
	<title>Downloader Example</title>
	<script type="text/javascript">
// 扩展API加载完毕后调用onPlusReady回调函数 
document.addEventListener( "plusready", onPlusReady, false );
var dtask = null;
// 扩展API加载完毕,现在可以正常调用扩展API 
function onPlusReady() {
}
// 创建下载任务
function createDownload() {
	dtask = plus.downloader.createDownload( "http://www.abc.com/a.doc", {}, function ( d, status ) {
		// 下载完成
		if ( status == 200 ) { 
			alert( "Download success: " + d.filename );
		} else {
			alert( "Download failed: " + status ); 
		}
	});
	//dtask.addEventListener( "statechanged", onStateChanged, false );
	dtask.start(); 
}
// 暂停下载任务 
function pauseDownload() {
	dtask.pause();
}
// 取消下载任务 
function abortDownload() {
	dtask.pause();
}
	</script>
</head>
<body>
	<input type="button" value="Create download task" onclick="createDownload();"></input>
	<input type="button" value="Pause download task" onclick="pauseDownload();"></input>
	<input type="button" value="Abort download task" onclick="abortDownload();"></input>
</body>
</html>

addEventListener

添加下载任务事件监听器

void download.addEventListener( type, listener, capture );

说明:

下载任务添加事件监听器后,当任务事件发生时触发。

参数:

返回值:

示例:

<!DOCTYPE html>
<html>
	<head>
	<meta charset="utf-8">
	<title>Downloader Example</title>
	<script type="text/javascript">
// 扩展API加载完毕后调用onPlusReady回调函数 
document.addEventListener( "plusready", onPlusReady, false );
var dtask = null;
// 扩展API加载完毕,现在可以正常调用扩展API 
function onPlusReady() {
}
// 监听下载任务状态 
function onStateChanged( download, status ) {
	if ( download.state == 4 && status == 200 ) {
		// 下载完成 
		alert( "Download success: " + download.getFileName() );
	}
}
// 创建下载任务
function createDownload() {
	dtask = plus.downloader.createDownload( "http://www.abc.com/a.doc" );
	dtask.addEventListener( "statechanged", onStateChanged, false );
	dtask.start(); 
}
// 暂停下载任务 
function pauseDownload() {
	dtask.pause();
}
// 取消下载任务 
function abortDownload() {
	dtask.pause();
}
	</script>
	</head>
	<body>
	<input type="button" value="Create download task" onclick="createDownload();"></input>
	<input type="button" value="Pause download task" onclick="pauseDownload();"></input>
	<input type="button" value="Abort download task" onclick="abortDownload();"></input>
	</body>
</html>

DownloadEvent

下载任务事件类型

常量:

"statechanged"

下载任务状态变化事件

DownloadState

下载任务状态

常量:

  • undefined未开始状态
  • 0初始状态
  • 1下载任务开始处理
  • 2下载任务请求已经接收
  • 3下载任务请求处理中
  • 4下载任务已完成
  • 5下载任务暂停状态
  • -1非任务状态

undefined

未开始状态

说明:

在创建之后触发此状态事件,下载任务处于可开始状态,需调用下载任务的start方法。

0

初始状态

说明:

在调用下载任务start之后触发此状态事件,下载任务处于可调度状态。

1

下载任务开始处理

说明:

开始建立网络连接,发送请求到服务器并等待服务器的响应。

2

下载任务请求已经接收

说明:

网络连接已建立,服务器返回响应,准备传输数据内容。

3

下载任务请求处理中

说明:

传输数据中,在传输过程中不断触发此状态事件。

4

下载任务已完成

说明:

下载任务成功或失败都会设置为此状态。

5

下载任务暂停状态

说明:

暂停任务时设置任务的状态,此时可重新开始下载任务。

-1

非任务状态

说明:

不用于表示任务的状态,用于enumerate()和claer()操作所有下载任务。

DownloadOption

下载任务的参数

说明:

在创建下载任务时设置的参数。可添加自定义参数,用于传递额外的数据,自定义参数仅支持字符串类型。

属性:

  • method:DOMString,支持http协议的“GET”、“POST”,默认为“GET”请求。
  • filename:DOMString,以文件后缀名结尾(如"_doc/download/a.doc")表明指定保存文件目录及名称,否则认为指定保存文件的目录,若没有指定文件名称则由程序自动生成文件名称。
  • priority:Number,数值类型,数值越大优先级越高,默认优先级值为0。
  • timeout:Number,数值类型,单位为s,默认值为120s。
  • retry:Number,数值类型,默认为重试3次。

DownloadCompletedCallback

下载任务完成时的回调

vaoid onCompleted( Download download, Number status ) {
	// Download file complete code
}

说明:

下载任务完成时的回调函数,在下载任务完成时调用。 下载任务失败也将触发此回调。

参数:

  • download(Download) 可选 下载任务对象
  • status (Number) 可选 Http传输协议状态码,如果未获取传输状态则其值则为0,如下载成功其值通常为200

DownloadStateChangedCallback

下载任务状态变化回调

void onStateChanged( Download download, status ) {
	// Download state changed code.
}

说明:

下载任务状态变化回调

参数:

  • download(Download) 可选 下载任务对象
  • status (Number) 可选 Http传输协议状态码,如果未获取传输状态则其值则为0,如下载成功其值通常为200

DownloadEnumerateCallback

枚举下载任务回调

void onEnumerated( Download[] downloads ) {
	// Enumerate success code
}

说明:

枚举下载任务回调

参数:

  • downloads(Download) 可选 枚举到的下载任务对象数组

关键词: html5puls,Downloader   编辑时间: 2015-03-23 22:52:52

  • 感到高兴

    0

    高兴
  • 感到支持

    0

    支持
  • 感到搞笑

    0

    搞笑
  • 感到不解

    0

    不解
  • 感到谎言

    0

    谎言
  • 感到枪稿

    0

    枪稿
  • 感到震惊

    0

    震惊
  • 感到无奈

    0

    无奈
  • 感到无聊

    0

    无聊
  • 感到反对

    0

    反对
  • 感到愤怒

    0

    愤怒
0%(0)
0%(0)
上一篇:Device
下一篇:nativeUI
共有0 条评论 发言请遵守【相关规定

网友评论

会员头像
发 表同步腾讯微博    验证码:  点击更新请先登陆
  • 暂无评论
关闭模块文章图片 article Pictrue
  • 我的妈妈爸爸
  • 基于koa2+mysql+vue2.0+Element阳光内容管理系统
  • 代码覆盖率工具 Istanbul 入门教程
  • 全栈工程师的武器——MEAN
  • 9款超炫的 CSS3 复选框(Checkbox)
  • 微信开发在线翻译功能
  • CSS3那些不为人知的高级属性
  • 给easyui的datebox添加清空事件
  • flash写字效果
  • kendoUI系列教程之DropDownList下拉菜单
  • kendoUI系列教程之datetimepicker日期时间选择
  • kendoUI系列教程之datepicker日期选择
  • kendoUI系列教程之combobox下拉列表框
  • kendoUI系列教程之colorpicker
  • kendoUI系列教程之calendar日历表
  • kendoUI系列教程之autocomplete自动补齐