downloadManager

来自于:官方立即使用

openManagerView closeManagerView enqueue pause resume remove query openDownloadedFile

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

概述

通过 downloadManager 模块,能够对所有的下载进程进行管理,并可以通过界面来查看下载进度等信息,同时还提供压缩包解压、快速查看下载完成文件等功能

downloadManager - 图1

openManagerView

打开下载管理界面

openManagerView({params}, callback(ret, err))

params

title:

  • 类型:字符串
  • 默认值:下载管理
  • 描述:显示在下载界面顶部栏的标题

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:点击列表中下载完成项的回调

内部字段:

  1. {
  2. id: '', //下载记录 id
  3. mimeType: '', //文件类型
  4. savePath: '', //下载文件的本地存储路径
  5. uncompressPath: '' //压缩文件解压缩后路径
  6. event: true //下载管理界面返回时的事件,布尔类型
  7. }

示例代码

  1. var downloadManager = api.require('downloadManager');
  2. downloadManager.openManagerView({
  3. title: '下载管理'
  4. }, function(ret, err) {
  5. if (ret) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closeManagerView

关闭下载管理界面

closeManagerView()

示例代码

  1. var downloadManager = api.require('downloadManager');
  2. downloadManager.closeManagerView();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

enqueue

开始一个下载

enqueue({params}, callback(ret, err))

params

url:

  • 类型:字符串
  • 默认值:无
  • 描述:资源地址

encode:

  • 类型:布尔
  • 默认值:true
  • 描述:(可选项)是否对url进行编码。传false时底层将不会对url进行编码

savePath:

  • 类型:字符串
  • 默认值:无
  • 描述:(可选项)存储路径,不传时使用自动创建的路径

cache:

  • 类型:布尔
  • 默认值:true
  • 描述:(可选项)是否使用缓存

allowResume:

  • 类型:布尔
  • 默认值:false
  • 描述:(可选项)是否开启断点续传,需要服务器支持

uncompress:

  • 类型:布尔
  • 默认值:false
  • 描述:(可选项)下载完成时是否解压缩文件

headers:

  • 类型:JSON 对象
  • 默认值:无
  • 描述:(可选项)请求头

mimeType:

  • 类型:字符串
  • 默认值:通过响应头获取
  • 描述:(可选项)被下载目标的类型(/

title:

  • 类型:字符串
  • 默认值:通过资源地址截取
  • 描述:(可选项)展示在managerView列表中的文件标题

iconPath:

  • 类型:字符串
  • 默认值:无
  • 描述:(可选项)该项下载显示在 managerView 中对应的图标

networkTypes:

  • 类型:字符串
  • 默认值:all
  • 描述:(可选项)允许自动下载的网络环境,参考网络环境常量

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. id: '123456' //新下载记录的 id
  3. }

示例代码

  1. var downloadManager = api.require('downloadManager');
  2. downloadManager.enqueue({
  3. url: 'http://xxx.zip',
  4. savePath: 'fs://xxx.zip',
  5. cache: true,
  6. allowResume: true,
  7. title: '教程',
  8. networkTypes: 'all'
  9. }, function(ret, err) {
  10. if (ret) {
  11. alert(JSON.stringify(ret));
  12. } else {
  13. alert(JSON.stringify(err));
  14. }
  15. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

pause

暂停下载

pause({params}, callback(ret, err))

params

id:

  • 类型:字符串
  • 默认值:无
  • 描述:下载记录的 id

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status: false, //操作状态
  3. msg: '' //操作失败时的描述
  4. }

示例代码

  1. var downloadManager = api.require('downloadManager');
  2. downloadManager.pause({
  3. id: '123'
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

补充说明

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

resume

继续下载

resume({params}, callback(ret, err))

params

id:

  • 类型:字符串
  • 默认值:无
  • 描述:下载记录的 id

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status: false, //操作状态
  3. msg: '' //操作失败时的描述
  4. }

示例代码

  1. var downloadManager = api.require('downloadManager');
  2. downloadManager.resume({
  3. id: '123'
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

补充说明

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

remove

删除下载

remove({params}, callback(ret, err))

params

ids:

  • 类型:数组
  • 默认值:无
  • 描述:下载记录的 id 数组

deleteFiles:

  • 类型:布尔
  • 默认值:false
  • 描述:(可选项)是否同时删除本地文件

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. number: 1 //成功完成删除操作的总数,没有则返回-1
  3. }

示例代码

  1. var downloadManager = api.require('downloadManager');
  2. downloadManager.remove({
  3. ids: [
  4. '123456',
  5. '1234567'
  6. ]
  7. }, function(ret, err) {
  8. if (ret) {
  9. alert(JSON.stringify(ret));
  10. } else {
  11. alert(JSON.stringify(err));
  12. }
  13. });

补充说明

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

query

查询下载状态,当查询条件均为空时,返回所有下载记录信息

query({params}, callback(ret, err))

params

ids:

  • 类型:数组
  • 默认值:无
  • 描述:(可选项)下载记录的 id 数组

status:

  • 类型:数字
  • 默认值:无
  • 描述:(可选项)下载状态,详见下载状态下载状态常量

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. data:
  3. [{
  4. id: '123456', //下载id
  5. status: 1, //下载状态
  6. url: '', //资源地址
  7. savePath: '', //下载文件本地存储路径
  8. title: '教程', //下载文件标题
  9. totalSize: 1000, //文件总大小,单位 byte
  10. finishSize: 500, //已完成下载大小,单位 byte
  11. mimeType: 'audio/mp4', //文件类型
  12. iconPath: '' //图片路径
  13. reason: '' //当下载发生错误时,错误的描述。详见下载错误常量表
  14. }]
  15. }

示例代码

  1. var downloadManager = api.require('downloadManager');
  2. downloadManager.query({
  3. ids: [
  4. '123456',
  5. '1234567'
  6. ]
  7. }, function(ret, err) {
  8. if (ret) {
  9. alert(JSON.stringify(ret));
  10. } else {
  11. alert(JSON.stringify(err));
  12. }
  13. });

补充说明

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

openDownloadedFile

打开下载文件

openDownloadedFile({params}, callback(ret, err))

params

id:

  • 类型:字符串
  • 默认值:无
  • 描述:下载记录的 id

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status: false, //操作状态
  3. msg: '' //操作失败时的描述
  4. }

示例代码

  1. var downloadManager = api.require('downloadManager');
  2. downloadManager.openDownloadedFile({
  3. id: '123456'
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

补充说明

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

网络环境 下载状态 下载错误

网络环境

网络环境

取值范围:

  • mobile //手机网络
  • wifi //wifi网络
  • all //手机和wifi网络

下载状态

下载状态

取值范围:

  • 0 //等待下载
  • 1 //正在下载
  • 2 //暂停状态,等待恢复或被重新唤醒
  • 3 //下载成功
  • 4 //下载发生错误

下载错误

下载错误

取值范围:

  • 1000 //未知错误
  • 1001 //存储已满
  • 1002 //未发现存储设备
  • 1003 //目标资源发生了重定向
  • 1004 //网络资源错误

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。