Downloader 文件下载
文件下载模块 network.downloader
可以将网络文件下载至伴生服务。
network.downloader 模块
downloadFile
返回 DownloadTask
对象
类型
(options: Options) => DownloadTask
参数
Options: object
属性 | 说明 | 是否必须 | 类型 |
---|---|---|---|
url | 文件 URL | 是 | string |
timeout | 超时时间 | 是 | number |
headers | 自定义 HTTP Request Header 字段 | 否 | object |
filePath | 文件下载路径,如果没有指定,默认在伴生服务的 data://download 路径下 | 否 | string |
DownloadTask: object
cancel
取消当前下载任务
类型
() => void
代码示例
const downloadTask = network.downloader.downloadFile({
url: 'https://docs.zepp.com/zh-cn/img/logo.png',
headers: { key: 121 },
timeout: 60000
})
downloadTask.cancel()
onProgress
通过 onProgress
属性指定下载文件进度回调函数,返回下载任务进度
类型
(event: ProgressEvent) => void
ProgressEvent
属性 | 说明 | 类型 |
---|---|---|
progress | 下载文件进度,值 1 - 100 | number |
total | 文件总大小,单位字节 | number |
loaded | 已经下载文件大小,单位字节 | number |
代码示例
const downloadTask = network.downloader.downloadFile({
url: 'https://docs.zepp.com/zh-cn/img/logo.png',
headers: { key: 121 },
timeout: 60000
})
downloadTask.onProgress = (ev) => {
console.log(ev.progress)
console.log(ev.total)
console.log(ev.loaded)
}
onSuccess
通过 onSuccess
属性指定下载文件成功回调函数,返回下载任务进度
类型
(event: SuccessEvent) => void
SuccessEvent
属性 | 说明 | 类型 |
---|---|---|
filePath | 如果在 downloadFile 中传入 filePath ,此处返回 filePath ,未指定路径则返回 tempFilePath | string |
tempFilePath | 下载文件的临时文件路径 | string |
statusCode | HTTP 状态码 | number |
代码示例
const downloadTask = network.downloader.downloadFile({
url: 'https://docs.zepp.com/zh-cn/img/logo.png',
headers: {},
timeout: 60000,
filePath: 'data://download/1.png'
})
downloadTask.onSuccess = (event) => {
console.log(event.filePath) // data://download/1.png
console.log(event.tempFilePath) // undefined
console.log(event.statusCode) // 200
}
const downloadTask2 = network.downloader.downloadFile({
url: 'https://docs.zepp.com/zh-cn/img/logo.png',
headers: { key: 121 },
timeout: 60000
})
downloadTask2.onSuccess = (event) => {
console.log(event.filePath) // undefined
console.log(event.tempFilePath) // data://download/logo.png
console.log(event.statusCode) // 200
}
onFail
(event: FailEvent) => void
FailEvent
属性 | 说明 | 类型 |
---|---|---|
code | 错误码 | number |
message | 错误详细内容 | string |
代码示例
const downloadTask = network.downloader.downloadFile({
url: 'https://docs.zepp.com/zh-cn/img/logo.png',
headers: {},
timeout: 60000,
filePath: 'data://download/1.png'
})
downloadTask.onFail = (event) => {
console.log(event.code)
console.log(event.message)
}
onComplete
不论下载任务是否成功,都会调用这个回调函数
() => void
代码示例
const downloadTask = network.downloader.downloadFile({
url: 'https://docs.zepp.com/zh-cn/img/logo.png',
headers: {},
timeout: 60000,
filePath: 'data://download/1.png'
})
downloadTask.onComplete = () => {
console.log('do something when success or fail')
}