Skip to main content
版本:v3

Downloader 文件下载

文件下载模块 network.downloader 可以将网络文件下载至伴生服务。

network.downloader 模块

downloadFile

返回 DownloadTask 对象

类型

(options: Options) => DownloadTask

参数

Options: object

属性说明是否必须类型
url文件 URLstring
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 - 100number
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,未指定路径则返回 tempFilePathstring
tempFilePath下载文件的临时文件路径string
statusCodeHTTP 状态码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')
}