downloadManager
来自于:官方立即使用
openManagerView closeManagerView enqueue pause resume remove query openDownloadedFile
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
概述
通过 downloadManager 模块,能够对所有的下载进程进行管理,并可以通过界面来查看下载进度等信息,同时还提供压缩包解压、快速查看下载完成文件等功能
openManagerView
打开下载管理界面
openManagerView({params}, callback(ret, err))
params
title:
- 类型:字符串
- 默认值:下载管理
- 描述:显示在下载界面顶部栏的标题
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:点击列表中下载完成项的回调
内部字段:
{
id: '', //下载记录 id
mimeType: '', //文件类型
savePath: '', //下载文件的本地存储路径
uncompressPath: '' //压缩文件解压缩后路径
event: true //下载管理界面返回时的事件,布尔类型
}
示例代码
var downloadManager = api.require('downloadManager');
downloadManager.openManagerView({
title: '下载管理'
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
closeManagerView
关闭下载管理界面
closeManagerView()
示例代码
var downloadManager = api.require('downloadManager');
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 对象
内部字段:
{
id: '123456' //新下载记录的 id
}
示例代码
var downloadManager = api.require('downloadManager');
downloadManager.enqueue({
url: 'http://xxx.zip',
savePath: 'fs://xxx.zip',
cache: true,
allowResume: true,
title: '教程',
networkTypes: 'all'
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
pause
暂停下载
pause({params}, callback(ret, err))
params
id:
- 类型:字符串
- 默认值:无
- 描述:下载记录的 id
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status: false, //操作状态
msg: '' //操作失败时的描述
}
示例代码
var downloadManager = api.require('downloadManager');
downloadManager.pause({
id: '123'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
补充说明
无
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
resume
继续下载
resume({params}, callback(ret, err))
params
id:
- 类型:字符串
- 默认值:无
- 描述:下载记录的 id
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status: false, //操作状态
msg: '' //操作失败时的描述
}
示例代码
var downloadManager = api.require('downloadManager');
downloadManager.resume({
id: '123'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
补充说明
无
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
remove
删除下载
remove({params}, callback(ret, err))
params
ids:
- 类型:数组
- 默认值:无
- 描述:下载记录的 id 数组
deleteFiles:
- 类型:布尔
- 默认值:false
- 描述:(可选项)是否同时删除本地文件
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
number: 1 //成功完成删除操作的总数,没有则返回-1
}
示例代码
var downloadManager = api.require('downloadManager');
downloadManager.remove({
ids: [
'123456',
'1234567'
]
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
补充说明
无
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
query
查询下载状态,当查询条件均为空时,返回所有下载记录信息
query({params}, callback(ret, err))
params
ids:
- 类型:数组
- 默认值:无
- 描述:(可选项)下载记录的 id 数组
status:
- 类型:数字
- 默认值:无
- 描述:(可选项)下载状态,详见下载状态下载状态常量
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
data:
[{
id: '123456', //下载id
status: 1, //下载状态
url: '', //资源地址
savePath: '', //下载文件本地存储路径
title: '教程', //下载文件标题
totalSize: 1000, //文件总大小,单位 byte
finishSize: 500, //已完成下载大小,单位 byte
mimeType: 'audio/mp4', //文件类型
iconPath: '' //图片路径
reason: '' //当下载发生错误时,错误的描述。详见下载错误常量表
}]
}
示例代码
var downloadManager = api.require('downloadManager');
downloadManager.query({
ids: [
'123456',
'1234567'
]
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
补充说明
无
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
openDownloadedFile
打开下载文件
openDownloadedFile({params}, callback(ret, err))
params
id:
- 类型:字符串
- 默认值:无
- 描述:下载记录的 id
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status: false, //操作状态
msg: '' //操作失败时的描述
}
示例代码
var downloadManager = api.require('downloadManager');
downloadManager.openDownloadedFile({
id: '123456'
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
补充说明
无
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
网络环境
网络环境
取值范围:
- mobile //手机网络
- wifi //wifi网络
- all //手机和wifi网络
下载状态
下载状态
取值范围:
- 0 //等待下载
- 1 //正在下载
- 2 //暂停状态,等待恢复或被重新唤醒
- 3 //下载成功
- 4 //下载发生错误
下载错误
下载错误
取值范围:
- 1000 //未知错误
- 1001 //存储已满
- 1002 //未发现存储设备
- 1003 //目标资源发生了重定向
- 1004 //网络资源错误
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。