Downloader模块管理网络文件下载任务

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

方法:

对象:

回调方法:

权限:

5+功能模块(permissions)

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#ffffff">{</span>
<span style="color:#87ceeb">// ...</span>
<span style="color:#ffa0a0">"permissions"</span><span style="color:#ffffff">:{</span>
	<span style="color:#87ceeb">// ...</span>
	<span style="color:#ffa0a0">"Downloader"</span><span style="color:#ffffff">:</span> <span style="color:#ffffff">{</span>
		<span style="color:#ffa0a0">"description"</span><span style="color:#ffffff">:</span> <span style="color:#ffa0a0">"文件下载,管理文件下载任务"</span>
	<span style="color:#ffffff">}</span>
<span style="color:#ffffff">}</span>
<span style="color:#ffffff">}</span>
			</code></span></span>

createDownload

新建下载任务

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#98fb98">Download</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#ffffff">createDownload</span><span style="color:#ffffff">(</span><span style="color:#ffffff">url</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> options</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> completedCB</span><span style="color:#ffffff">);</span>
				</code></span></span>

说明:

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

参数:

  • url: ( String ) 必选 要下载文件资源地址

    要下载文件的url地址,仅支持网络资源地址,支持http或https协议。 允许创建多个相同url地址的下载任务。 注意:如果url地址中包含中文或空格等,需要进行urlencode转换。

  • options: DownloadOptions ) 可选 下载任务的参数

    可通过此参数设置下载任务属性,如保存文件路径、下载优先级等。

  • completedCB: DownloadCompletedCallback ) 可选 下载任务完成回调函数

    当下载任务下载完成时触发,成功或失败都会触发。

返回值:

Download : 新建的下载任务对象

示例:

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#87ceeb">// 创建下载任务</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> createDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span>
	<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> dtask </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#ffffff">createDownload</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"http://www.abc.com/a.doc"</span><span style="color:#ffffff">,</span> <span style="color:#ffffff">{},</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">d</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">){</span>
		<span style="color:#87ceeb">// 下载完成</span>
		<span style="color:#f0e68c"><strong>if</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">status </span><span style="color:#ffffff">==</span> <span style="color:#cd5c5c">200</span><span style="color:#ffffff">){</span><span style="color:#ffffff"> 
			console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Download success: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> d</span><span style="color:#ffffff">.</span><span style="color:#ffffff">filename</span><span style="color:#ffffff">);</span>
		<span style="color:#ffffff">}</span> <span style="color:#f0e68c"><strong>else</strong></span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
			 console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Download failed: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">);</span> 
		<span style="color:#ffffff">}</span>  
	<span style="color:#ffffff">});</span>
	<span style="color:#87ceeb">//dtask.addEventListener("statechanged", onStateChanged, false);</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">start</span><span style="color:#ffffff">();</span> 
<span style="color:#ffffff">}</span>
    			</code></span></span>

uni-app使用plus注意事项

enumerate

枚举下载任务

<span style="background-color:#333333"><span style="color:#474747"><code><span style="color:#ffffff">
plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#ffffff">enumerate</span><span style="color:#ffffff">(</span><span style="color:#ffffff"> enumCB</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> state </span><span style="color:#ffffff">);</span>
				</code></span></span>

说明:

枚举指定状态的下载任务列表,通过enumCB回调函数返回结果。

参数:

  • enumCB: DownloadEnumerateCallback ) 必选 枚举下载任务回调函数

    枚举下载任务完成时触发。

  • state: DownloadState ) 可选 枚举下载任务的状态

    如果未指定state值,则枚举所有未完成的下载任务。

返回值:

void : 无

示例:

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#87ceeb">// 枚举下载任务 </span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> enumerateDwonload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#ffffff">enumerate</span><span style="color:#ffffff">(</span><span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">tasks</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
		console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Unfinished task count: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> tasks</span><span style="color:#ffffff">.</span><span style="color:#ffffff">length</span><span style="color:#ffffff">);</span>
	<span style="color:#ffffff">});</span>
<span style="color:#ffffff">}</span>
    			</code></span></span>

uni-app使用plus注意事项

clear

清除下载任务

<span style="background-color:#333333"><span style="color:#474747"><code><span style="color:#ffffff">
plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#ffffff">clear</span><span style="color:#ffffff">(</span><span style="color:#ffffff">state</span><span style="color:#ffffff">);</span>
				</code></span></span>

说明:

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

参数:

  • state: DownloadState ) 可选 清除下载任务的状态

    如果未指定state值,则清除所有未完成的下载任务。

返回值:

void : 无

示例:

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#87ceeb">// 清除下载任务 </span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> onPlusReady</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#ffffff">clear</span><span style="color:#ffffff">();</span>
<span style="color:#ffffff">}</span>
    			</code></span></span>

uni-app使用plus注意事项

startAll

开始所有下载任务

<span style="background-color:#333333"><span style="color:#474747"><code><span style="color:#ffffff">
plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#ffffff">startAll</span><span style="color:#ffffff">();</span>
				</code></span></span>

说明:

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

参数:

返回值:

void : 无

示例:

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#87ceeb">// 开始所有下载任务</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> onPlusReady</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#ffffff">startAll</span><span style="color:#ffffff">();</span>
<span style="color:#ffffff">}</span>
    			</code></span></span>

uni-app使用plus注意事项

Download

Download对象管理一个下载任务

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>interface</strong></span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#98fb98">Download</span> <span style="color:#ffffff">{</span>
	<span style="color:#f0e68c"><strong>readonly</strong></span><span style="color:#ffffff"> attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> id</span><span style="color:#ffffff">;</span>
	<span style="color:#f0e68c"><strong>readonly</strong></span><span style="color:#ffffff"> attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> url</span><span style="color:#ffffff">;</span>
	<span style="color:#f0e68c"><strong>readonly</strong></span><span style="color:#ffffff"> attribute </span><span style="color:#98fb98">Number</span><span style="color:#ffffff"> state</span><span style="color:#ffffff">;</span>
	<span style="color:#f0e68c"><strong>readonly</strong></span><span style="color:#ffffff"> attribute </span><span style="color:#98fb98">DownloadOptions</span><span style="color:#ffffff"> options</span><span style="color:#ffffff">;</span>
	<span style="color:#f0e68c"><strong>readonly</strong></span><span style="color:#ffffff"> attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> filename</span><span style="color:#ffffff">;</span>
	<span style="color:#f0e68c"><strong>readonly</strong></span><span style="color:#ffffff"> attribute </span><span style="color:#98fb98">Number</span><span style="color:#ffffff"> downloadedSize</span><span style="color:#ffffff">;</span>
	<span style="color:#f0e68c"><strong>readonly</strong></span><span style="color:#ffffff"> attribute </span><span style="color:#98fb98">Number</span><span style="color:#ffffff"> totalSize</span><span style="color:#ffffff">;</span>
	<span style="color:#f0e68c"><strong>function</strong></span> <span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> abort</span><span style="color:#ffffff">();</span>
	<span style="color:#f0e68c"><strong>function</strong></span> <span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> addEventListener</span><span style="color:#ffffff">(</span><span style="color:#98fb98">String</span> <span style="color:#f0e68c"><strong>event</strong></span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>function</strong></span> <span style="color:#98fb98">Callback</span><span style="color:#ffffff"> listener</span><span style="color:#ffffff">,</span> <span style="color:#98fb98">Boolean</span><span style="color:#ffffff"> capture</span><span style="color:#ffffff">);</span>
	<span style="color:#f0e68c"><strong>function</strong></span> <span style="color:#98fb98">String</span><span style="color:#ffffff"> getAllResponseHeaders</span><span style="color:#ffffff">();</span>
	<span style="color:#f0e68c"><strong>function</strong></span> <span style="color:#98fb98">String</span><span style="color:#ffffff"> getResponseHeader</span><span style="color:#ffffff">(</span><span style="color:#98fb98">String</span><span style="color:#ffffff"> headerName</span><span style="color:#ffffff">);</span>
	<span style="color:#f0e68c"><strong>function</strong></span> <span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> pause</span><span style="color:#ffffff">();</span>
	<span style="color:#f0e68c"><strong>function</strong></span> <span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> resume</span><span style="color:#ffffff">();</span>
	<span style="color:#f0e68c"><strong>function</strong></span> <span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> setRequestHeader</span><span style="color:#ffffff">(</span><span style="color:#98fb98">String</span><span style="color:#ffffff"> headerName</span><span style="color:#ffffff">,</span> <span style="color:#98fb98">String</span><span style="color:#ffffff"> headerValue</span><span style="color:#ffffff">);</span>
	<span style="color:#f0e68c"><strong>function</strong></span> <span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> start</span><span style="color:#ffffff">();</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

属性:

方法:

id

下载任务的标识

<span style="background-color:#333333"><span style="color:#474747"><code><span style="color:#ffffff">
download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">id</span><span style="color:#ffffff">;</span>
						</code></span></span>

说明:

String 类型 只读属性

在创建任务时系统自动分配,用于标识下载任务的唯一性。

url

下载文件的地址

<span style="background-color:#333333"><span style="color:#474747"><code><span style="color:#ffffff">
download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">url</span><span style="color:#ffffff">;</span>
						</code></span></span>

说明:

String 类型 只读属性

调用plus.donwloader.createDownload()方法创建下载任务时设置的值。

state

任务的状态

<span style="background-color:#333333"><span style="color:#474747"><code><span style="color:#ffffff">
download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">state</span><span style="color:#ffffff">;</span>
						</code></span></span>

说明:

DownloadState 类型 只读属性

表示当前下载任务的状态,可通过addEventListener()方法监听statechanged事件监听任务状态的变化。

options

下载任务的参数

<span style="background-color:#333333"><span style="color:#474747"><code><span style="color:#ffffff">
download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">options</span><span style="color:#ffffff">;</span>
						</code></span></span>

说明:

DownloadOptions 类型 只读属性

调用plus.donwloader.createDownload()方法创建下载任务时设置的参数。

filename

下载的文件名称

<span style="background-color:#333333"><span style="color:#474747"><code><span style="color:#ffffff">
download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">filename</span><span style="color:#ffffff">;</span>
						</code></span></span>

说明:

String 类型 只读属性

下载任务在本地保存的文件路径,下载任务完成时更新,可通过此值访问下载的文件。

downloadedSize

已完成下载文件的大小

<span style="background-color:#333333"><span style="color:#474747"><code><span style="color:#ffffff">
download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloadedSize</span><span style="color:#ffffff">;</span>
						</code></span></span>

说明:

Number 类型 只读属性

整数类型,单位为字节(byte),下载任务开始传输数据时,每次触发statechanged事件或下载任务完成时更新。

totalSize

下载任务文件的总大小

<span style="background-color:#333333"><span style="color:#474747"><code><span style="color:#ffffff">
download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">totalSize</span><span style="color:#ffffff">;</span>
						</code></span></span>

说明:

Number 类型 只读属性

整数类型,单位为字节(byte),下载任务开始传输数据时更新,在此之前其值为0。 此值是从HTTP协议的Content-Length中获取,如果服务器未返回Content-Length数据则此值始终为0。

abort

取消下载任务

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">abort</span><span style="color:#ffffff">();</span>
						</code></span></span>

说明:

如果任务未完成,则终止下载,并从任务列表中删除。 如下载未完成,将删除已下载的临时文件,如果下载已完成,将不删除已下载的文件。

参数:

返回值:

void : 无

示例:

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> dtask </span><span style="color:#ffffff">=</span> <span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">;</span>
<span style="color:#87ceeb">// 创建下载任务</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> createDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	dtask </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#ffffff">createDownload</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"http://www.abc.com/a.doc"</span><span style="color:#ffffff">,</span> <span style="color:#ffffff">{},</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">d</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">){</span>
		<span style="color:#87ceeb">// 下载完成</span>
		<span style="color:#f0e68c"><strong>if</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">status </span><span style="color:#ffffff">==</span> <span style="color:#cd5c5c">200</span><span style="color:#ffffff">){</span><span style="color:#ffffff"> 
			console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Download success: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> d</span><span style="color:#ffffff">.</span><span style="color:#ffffff">filename</span><span style="color:#ffffff">);</span>
		<span style="color:#ffffff">}</span><span style="color:#f0e68c"><strong>else</strong></span><span style="color:#ffffff">{</span><span style="color:#ffffff">
			console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Download failed: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">);</span> 
		<span style="color:#ffffff">}</span>  
	<span style="color:#ffffff">});</span>
	<span style="color:#87ceeb">//dtask.addEventListener("statechanged", onStateChanged, false);</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">start</span><span style="color:#ffffff">();</span> 
<span style="color:#ffffff">}</span>
<span style="color:#87ceeb">// 暂停下载任务 </span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> pauseDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">pause</span><span style="color:#ffffff">();</span>
<span style="color:#ffffff">}</span>
<span style="color:#87ceeb">// 取消下载任务 </span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> abortDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">abort</span><span style="color:#ffffff">();</span>
<span style="color:#ffffff">}</span>
						</code></span></span>

uni-app使用plus注意事项

addEventListener

添加下载任务事件监听器

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addEventListener</span><span style="color:#ffffff">(</span><span style="color:#ffffff">type</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> listener</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> capture</span><span style="color:#ffffff">);</span>
						</code></span></span>

说明:

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

参数:

  • type: DownloadEvent ) 必选 事件类型

  • listener: DownloadStateChangedCallback ) 可选 事件监听器回调

    当监听的事件发生时,触发设置的回调函数。

  • capture: ( Boolean ) 可选 事件流处理顺序,暂不支持

返回值:

void : 无

示例:

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> dtask </span><span style="color:#ffffff">=</span> <span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">;</span>
<span style="color:#87ceeb">// 监听下载任务状态 </span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> onStateChanged</span><span style="color:#ffffff">(</span><span style="color:#ffffff">download</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">)</span> <span style="color:#ffffff">{</span>
	<span style="color:#f0e68c"><strong>if</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">state </span><span style="color:#ffffff">==</span> <span style="color:#cd5c5c">4</span> <span style="color:#ffffff">&&</span><span style="color:#ffffff"> status </span><span style="color:#ffffff">==</span> <span style="color:#cd5c5c">200</span><span style="color:#ffffff">){</span>
		<span style="color:#87ceeb">// 下载完成 </span><span style="color:#ffffff">
		console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Download success: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">getFileName</span><span style="color:#ffffff">());</span>  
	<span style="color:#ffffff">}</span>  
<span style="color:#ffffff">}</span>
<span style="color:#87ceeb">// 创建下载任务</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> createDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	dtask </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#ffffff">createDownload</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"http://www.abc.com/a.doc"</span><span style="color:#ffffff">);</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addEventListener</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"statechanged"</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> onStateChanged</span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>false</strong></span><span style="color:#ffffff">);</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">start</span><span style="color:#ffffff">();</span> 
<span style="color:#ffffff">}</span>
<span style="color:#87ceeb">// 暂停下载任务 </span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> pauseDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">pause</span><span style="color:#ffffff">();</span>
<span style="color:#ffffff">}</span>
<span style="color:#87ceeb">// 取消下载任务 </span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> abortDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">abort</span><span style="color:#ffffff">();</span>
<span style="color:#ffffff">}</span>
						</code></span></span>

uni-app使用plus注意事项

getAllResponseHeaders

获取下载请求HTTP响应头部信息

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#98fb98">String</span><span style="color:#ffffff"> download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">getAllResponseHeaders</span><span style="color:#ffffff">();</span>
						</code></span></span>

说明:

HTTP响应头部全部内容作为未解析的字符串返回,如果没有接收到这个HTTP响应头数据或者下载请求未完成则为空字符串。

参数:

返回值:

String : HTTP响应头数据

示例:

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> dtask </span><span style="color:#ffffff">=</span> <span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">;</span>
<span style="color:#87ceeb">// 创建下载任务</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> createDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span>
	<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> dtask </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#ffffff">createDownload</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"http://www.abc.com/a.doc"</span><span style="color:#ffffff">,</span> <span style="color:#ffffff">{},</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">d</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">){</span>
		<span style="color:#87ceeb">// 下载完成</span>
		<span style="color:#f0e68c"><strong>if</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">status </span><span style="color:#ffffff">==</span> <span style="color:#cd5c5c">200</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
			console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffffff">dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">getAllResponseHeaders</span><span style="color:#ffffff">());</span> <span style="color:#87ceeb">// 获取下载请求响应头数据</span><span style="color:#ffffff">
			console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Download success: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> d</span><span style="color:#ffffff">.</span><span style="color:#ffffff">filename</span><span style="color:#ffffff">);</span>
		<span style="color:#ffffff">}</span><span style="color:#f0e68c"><strong>else</strong></span><span style="color:#ffffff">{</span><span style="color:#ffffff">
			console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Download failed: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">);</span> 
		<span style="color:#ffffff">}</span>  
	<span style="color:#ffffff">});</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">start</span><span style="color:#ffffff">();</span> 
<span style="color:#ffffff">}</span>
						</code></span></span>

uni-app使用plus注意事项

getResponseHeader

获取下载请求指定的HTTP响应头部的值

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#98fb98">String</span><span style="color:#ffffff"> download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">getResponseHeader</span><span style="color:#ffffff">(</span><span style="color:#98fb98">String</span><span style="color:#ffffff"> headerName</span><span style="color:#ffffff">);</span>
						</code></span></span>

说明:

其参数是要返回的HTTP响应头部的名称,可以使用任何大小写来制定这个头部名字,和响应头部的比较是不区分大小写的。 如果没有接收到这个头部或者下载请求未完成则为空字符串;如果接收到多个有指定名称的头部,这个头部的值被连接起来并返回,使用逗号和空格分隔开各个头部的值。

参数:

  • headerName: ( String ) 可选 HTTP响应头数据名称

返回值:

String : HTTP响应头数据值

示例:

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> dtask </span><span style="color:#ffffff">=</span> <span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">;</span>
<span style="color:#87ceeb">// 创建下载任务</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> createDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span>
	<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> dtask </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#ffffff">createDownload</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"http://www.abc.com/a.doc"</span><span style="color:#ffffff">,</span> <span style="color:#ffffff">{},</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">d</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">){</span>
		<span style="color:#87ceeb">// 下载完成</span>
		<span style="color:#f0e68c"><strong>if</strong></span> <span style="color:#ffffff">(</span><span style="color:#ffffff"> status </span><span style="color:#ffffff">==</span> <span style="color:#cd5c5c">200</span> <span style="color:#ffffff">)</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
			console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffffff">dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">getResponseHeader</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Content-Type"</span><span style="color:#ffffff">));</span>
		<span style="color:#ffffff">}</span> <span style="color:#f0e68c"><strong>else</strong></span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
			console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Download failed: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">);</span> 
		<span style="color:#ffffff">}</span>  
	<span style="color:#ffffff">});</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">start</span><span style="color:#ffffff">();</span> 
<span style="color:#ffffff">}</span>
						</code></span></span>

uni-app使用plus注意事项

pause

暂停下载任务

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">pause</span><span style="color:#ffffff">();</span>
						</code></span></span>

说明:

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

参数:

返回值:

void : 无

示例:

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> dtask </span><span style="color:#ffffff">=</span> <span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">;</span>
<span style="color:#87ceeb">// 创建下载任务</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> createDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	dtask </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#ffffff">createDownload</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"http://www.abc.com/a.doc"</span><span style="color:#ffffff">,</span> <span style="color:#ffffff">{},</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">d</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">){</span>
		<span style="color:#87ceeb">// 下载完成</span>
		<span style="color:#f0e68c"><strong>if</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">status </span><span style="color:#ffffff">==</span> <span style="color:#cd5c5c">200</span><span style="color:#ffffff">){</span><span style="color:#ffffff"> 
			console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Download success: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> d</span><span style="color:#ffffff">.</span><span style="color:#ffffff">filename</span><span style="color:#ffffff">);</span>
		<span style="color:#ffffff">}</span> <span style="color:#f0e68c"><strong>else</strong></span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
			console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Download failed: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">);</span> 
		<span style="color:#ffffff">}</span>  
	<span style="color:#ffffff">});</span>
	<span style="color:#87ceeb">//dtask.addEventListener("statechanged", onStateChanged, false);</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">start</span><span style="color:#ffffff">();</span> 
<span style="color:#ffffff">}</span>
<span style="color:#87ceeb">// 暂停下载任务 </span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> pauseDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">pause</span><span style="color:#ffffff">();</span>
<span style="color:#ffffff">}</span>
						</code></span></span>

uni-app使用plus注意事项

resume

恢复暂停的下载任务

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">resume</span><span style="color:#ffffff">();</span>
						</code></span></span>

说明:

继续暂停的下载任务,如果任务处于非暂停状态则无任何响应。

参数:

返回值:

void : 无

示例:

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> dtask </span><span style="color:#ffffff">=</span> <span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">;</span>
<span style="color:#87ceeb">// 创建下载任务</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> createDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	dtask </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#ffffff">createDownload</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"http://www.abc.com/a.doc"</span><span style="color:#ffffff">,</span> <span style="color:#ffffff">{},</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">d</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">){</span>
		<span style="color:#87ceeb">// 下载完成</span>
		<span style="color:#f0e68c"><strong>if</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">status </span><span style="color:#ffffff">==</span> <span style="color:#cd5c5c">200</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
			console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Download success: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> d</span><span style="color:#ffffff">.</span><span style="color:#ffffff">filename</span><span style="color:#ffffff">);</span>
		<span style="color:#ffffff">}</span><span style="color:#f0e68c"><strong>else</strong></span><span style="color:#ffffff">{</span><span style="color:#ffffff">
			console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Download failed: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">);</span>
		<span style="color:#ffffff">}</span>
	<span style="color:#ffffff">});</span>
	<span style="color:#87ceeb">//dtask.addEventListener("statechanged", onStateChanged, false);</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">start</span><span style="color:#ffffff">();</span>
<span style="color:#ffffff">}</span>
<span style="color:#87ceeb">// 暂停下载任务</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> pauseDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">pause</span><span style="color:#ffffff">();</span>
<span style="color:#ffffff">}</span>
<span style="color:#87ceeb">// 恢复下载任务</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> resumeDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">resume</span><span style="color:#ffffff">();</span>
<span style="color:#ffffff">}</span>
						</code></span></span>

uni-app使用plus注意事项

setRequestHeader

设置下载请求的HTTP头数据

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">setRequestHeader</span><span style="color:#ffffff">(</span><span style="color:#ffffff"> headerName</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> headerValue </span><span style="color:#ffffff">);</span>
						</code></span></span>

说明:

Http的Header应该包含在通过后续start()调用而发起的请求中,此方法必需在调用start()之前设置才能生效。 如果带有指定名称的头部已经被指定了,这个头部的新值就是:之前指定的值,加上逗号、以及这个调用指定的值(形成一个数组)。

参数:

  • headerName: ( String ) 必选 HTTP请求的头数据名称

  • headerValue: ( String ) 必选 HTTP请求的头数据值

返回值:

void : 无

平台支持:

  • Android - 2.2+ (支持) :

    不支持设置“User-Agent”、“Cookie”的值。

  • iOS - 5.1+ (支持) :

    不支持设置“User-Agent”的值。

示例:

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> dtask </span><span style="color:#ffffff">=</span> <span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">;</span>
<span style="color:#87ceeb">// 创建下载任务</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> createDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span>
	<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> dtask </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#ffffff">createDownload</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"http://www.abc.com/a.doc"</span><span style="color:#ffffff">,</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">method</span><span style="color:#ffffff">:</span><span style="color:#ffa0a0">"POST"</span><span style="color:#ffffff">,</span><span style="color:#ffffff">data</span><span style="color:#ffffff">:</span><span style="color:#ffa0a0">"{name:'test',id:'1234567890'}"</span><span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">d</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">){</span>
		<span style="color:#87ceeb">// 下载完成</span>
		<span style="color:#f0e68c"><strong>if</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">status </span><span style="color:#ffffff">==</span> <span style="color:#cd5c5c">200</span><span style="color:#ffffff">){</span><span style="color:#ffffff"> 
			console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Download success: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> d</span><span style="color:#ffffff">.</span><span style="color:#ffffff">filename</span><span style="color:#ffffff">);</span>
		<span style="color:#ffffff">}</span><span style="color:#f0e68c"><strong>else</strong></span><span style="color:#ffffff">{</span><span style="color:#ffffff">
			console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Download failed: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">);</span> 
		<span style="color:#ffffff">}</span>  
	<span style="color:#ffffff">});</span><span style="color:#87ceeb">// POST请求提交数据</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">setRequestHeader</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">'Content-Type'</span><span style="color:#ffffff">,</span><span style="color:#ffa0a0">'application/json'</span><span style="color:#ffffff">);</span><span style="color:#87ceeb">// 设置POST请求提交的数据类型为JSON字符串</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">start</span><span style="color:#ffffff">();</span> 
<span style="color:#ffffff">}</span>
						</code></span></span>

uni-app使用plus注意事项

start

开始下载任务

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">start</span><span style="color:#ffffff">();</span>
						</code></span></span>

说明:

开始下载任务,如果任务已经处于开始状态则无任何响应。 在创建任务或任务下载失败后调用可重新开始下载。

参数:

返回值:

void : 无

示例:

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> dtask </span><span style="color:#ffffff">=</span> <span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">;</span>
<span style="color:#87ceeb">// 创建下载任务</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> createDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span>
	<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> dtask </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#ffffff">createDownload</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"http://www.abc.com/a.doc"</span><span style="color:#ffffff">,</span> <span style="color:#ffffff">{},</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">d</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">){</span>
		<span style="color:#87ceeb">// 下载完成</span>
		<span style="color:#f0e68c"><strong>if</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">status </span><span style="color:#ffffff">==</span> <span style="color:#cd5c5c">200</span><span style="color:#ffffff">){</span><span style="color:#ffffff"> 
			console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Download success: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> d</span><span style="color:#ffffff">.</span><span style="color:#ffffff">filename</span><span style="color:#ffffff">);</span>
		<span style="color:#ffffff">}</span><span style="color:#f0e68c"><strong>else</strong></span><span style="color:#ffffff">{</span><span style="color:#ffffff">
			console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Download failed: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">);</span> 
		<span style="color:#ffffff">}</span>  
	<span style="color:#ffffff">});</span>
	<span style="color:#87ceeb">//dtask.addEventListener("statechanged", onStateChanged, false);</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">start</span><span style="color:#ffffff">();</span> 
<span style="color:#ffffff">}</span>
						</code></span></span>

uni-app使用plus注意事项

DownloadEvent

下载任务事件类型

常量:

  • "statechanged": (String 类型 )下载任务状态变化事件

    当下载任务状态发生变化时触发此事件,事件原型参考DownloadStateChangedCallback。

示例:

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> dtask </span><span style="color:#ffffff">=</span> <span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">;</span>
<span style="color:#87ceeb">// 扩展API加载完毕,现在可以正常调用扩展API </span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> onPlusReady</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span>
<span style="color:#ffffff">}</span>
<span style="color:#87ceeb">// 监听下载任务状态 </span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> onStateChanged</span><span style="color:#ffffff">(</span><span style="color:#ffffff">download</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">)</span> <span style="color:#ffffff">{</span>
	<span style="color:#f0e68c"><strong>if</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">state </span><span style="color:#ffffff">==</span> <span style="color:#cd5c5c">4</span> <span style="color:#ffffff">&&</span><span style="color:#ffffff"> status </span><span style="color:#ffffff">==</span> <span style="color:#cd5c5c">200</span><span style="color:#ffffff">){</span>
		<span style="color:#87ceeb">// 下载完成 </span><span style="color:#ffffff">
		console</span><span style="color:#ffffff">.</span><span style="color:#ffffff">log</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"Download success: "</span> <span style="color:#ffffff">+</span><span style="color:#ffffff"> download</span><span style="color:#ffffff">.</span><span style="color:#ffffff">getFileName</span><span style="color:#ffffff">());</span>  
	<span style="color:#ffffff">}</span>  
<span style="color:#ffffff">}</span>
<span style="color:#87ceeb">// 创建下载任务</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> createDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	dtask </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#ffffff">createDownload</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"http://www.abc.com/a.doc"</span><span style="color:#ffffff">);</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addEventListener</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"statechanged"</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> onStateChanged</span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>false</strong></span><span style="color:#ffffff">);</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">start</span><span style="color:#ffffff">();</span> 
<span style="color:#ffffff">}</span>
<span style="color:#87ceeb">// 暂停下载任务 </span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> pauseDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">pause</span><span style="color:#ffffff">();</span>
<span style="color:#ffffff">}</span>
<span style="color:#87ceeb">// 取消下载任务 </span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> abortDownload</span><span style="color:#ffffff">()</span> <span style="color:#ffffff">{</span><span style="color:#ffffff">
	dtask</span><span style="color:#ffffff">.</span><span style="color:#ffffff">abort</span><span style="color:#ffffff">();</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

uni-app使用plus注意事项

DownloadState

下载任务状态

常量:

  • undefined: (undefined 类型 )下载任务未开始

    通过plus.downloader.createDownload()方法创建下载任务后的初始状态,此时可调用其start()方法开始下载。

  • 0: (Number 类型 )下载任务开始调度

    调用下载任务的start()方法之后处于此状态,此时下载任务处于可调度下载状态。

  • 1: (Number 类型 )下载任务开始请求

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

  • 2: (Number 类型 )下载任务请求已经接收

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

  • 3: (Number 类型 )下载任务接收数据

    下载任务接收数据,监听statechanged事件时可多次触发此状态。

  • 4: (Number 类型 )下载任务已完成

    下载任务完成数据传输并断开连接,下载成功或失败都会设置为此状态。

  • 5: (Number 类型 )下载任务已暂停

    调用下载任务的pause()方法将任务暂停,此时可调用其resume()方法重新开始下载。

  • -1: (Number 类型 )枚举任务状态

    非下载任务状态,泛指所有下载任务的状态,用于enumerate()和clear()操作时指定作用于所有下载任务。

DownloadOptions

下载任务参数

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>interface</strong></span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">downloader</span><span style="color:#ffffff">.</span><span style="color:#98fb98">DownloadOptions</span> <span style="color:#ffffff">{</span>
	<span style="color:#f0e68c"><strong>readonly</strong></span><span style="color:#ffffff"> attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> method</span><span style="color:#ffffff">;</span>
	<span style="color:#f0e68c"><strong>readonly</strong></span><span style="color:#ffffff"> attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> data</span><span style="color:#ffffff">;</span>
	<span style="color:#f0e68c"><strong>readonly</strong></span><span style="color:#ffffff"> attribute </span><span style="color:#98fb98">String</span><span style="color:#ffffff"> filename</span><span style="color:#ffffff">;</span>
	<span style="color:#f0e68c"><strong>readonly</strong></span><span style="color:#ffffff"> attribute </span><span style="color:#98fb98">Number</span><span style="color:#ffffff"> priority</span><span style="color:#ffffff">;</span>
	<span style="color:#f0e68c"><strong>readonly</strong></span><span style="color:#ffffff"> attribute </span><span style="color:#98fb98">Number</span><span style="color:#ffffff"> timeout</span><span style="color:#ffffff">;</span>
	<span style="color:#f0e68c"><strong>readonly</strong></span><span style="color:#ffffff"> attribute </span><span style="color:#98fb98">Number</span> <span style="color:#f0e68c"><strong>retry</strong></span><span style="color:#ffffff">;</span>
	<span style="color:#f0e68c"><strong>readonly</strong></span><span style="color:#ffffff"> attribute </span><span style="color:#98fb98">Number</span><span style="color:#ffffff"> retryInterval</span><span style="color:#ffffff">;</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

说明:

在创建下载任务时设置的参数,如设置下载任务使用的HTTP协议类型、优先级等。

属性:

  • 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。

DownloadCompletedCallback

下载任务完成时的回调

<span style="background-color:#333333"><span style="color:#474747"><code><span style="color:#ffffff">
vaoid onCompleted</span><span style="color:#ffffff">(</span><span style="color:#98fb98">Download</span><span style="color:#ffffff"> download</span><span style="color:#ffffff">,</span> <span style="color:#98fb98">Number</span><span style="color:#ffffff"> status</span><span style="color:#ffffff">)</span> <span style="color:#ffffff">{</span>
	<span style="color:#87ceeb">// Download file complete code</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

说明:

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

参数:

  • download : Download ) 必选 下载任务对象

  • status: ( Number ) 必选 下载结果状态码

    HTTP传输协议状态码,如果未获取传输状态则其值则为0,如下载成功其值通常为200。

返回值:

void : 无

DownloadStateChangedCallback

下载任务状态变化回调

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> onStateChanged</span><span style="color:#ffffff">(</span> <span style="color:#98fb98">Download</span><span style="color:#ffffff"> download</span><span style="color:#ffffff">,</span><span style="color:#ffffff"> status </span><span style="color:#ffffff">)</span> <span style="color:#ffffff">{</span>
	<span style="color:#87ceeb">// Download state changed code.</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

参数:

  • download : Download ) 必选 下载任务对象

  • status: ( Number ) 必选 下载结果状态码

    HTTP传输协议状态码,如果未获取传输状态则其值则为0,如下载成功其值通常为200。

返回值:

void : 无

DownloadEnumerateCallback

枚举下载任务回调

<span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> onEnumerated</span><span style="color:#ffffff">(</span> <span style="color:#98fb98">Download</span><span style="color:#ffffff">[]</span><span style="color:#ffffff"> downloads </span><span style="color:#ffffff">)</span> <span style="color:#ffffff">{</span>
	<span style="color:#87ceeb">// Enumerate success code</span>
<span style="color:#ffffff">}</span>
				</code></span></span>

参数:

  • downloads: ( Array[Download] ) 必选 枚举到的下载任务对象数组

返回值:

void : 无