跳到主要内容
版本:3.x

DownloadTask

一个可以监听下载进度变化事件,以及取消下载任务的对象

支持情况:

参考文档

方法

abort

中断下载任务

支持情况:

参考文档

() => void

onProgressUpdate

监听下载进度变化事件

支持情况:

参考文档

(callback: OnProgressUpdateCallback) => void
参数类型说明
callbackOnProgressUpdateCallback下载进度变化事件的回调函数

offProgressUpdate

取消监听下载进度变化事件

支持情况:

参考文档

(callback: OnProgressUpdateCallback) => void
参数类型说明
callbackOnProgressUpdateCallback下载进度变化事件的回调函数

onHeadersReceived

监听 HTTP Response Header 事件。会比请求完成事件更早

支持情况:

参考文档

(callback: OnHeadersReceivedCallback) => void
参数类型说明
callbackOnHeadersReceivedCallbackHTTP Response Header 事件的回调函数

offHeadersReceived

取消监听 HTTP Response Header 事件

支持情况:

参考文档

(callback: OnHeadersReceivedCallback) => void
参数类型说明
callbackOnHeadersReceivedCallbackHTTP Response Header 事件的回调函数

参数

OnHeadersReceivedCallback

HTTP Response Header 事件的回调函数

(result: OnHeadersReceivedCallbackResult) => void
参数类型
resultOnHeadersReceivedCallbackResult

OnProgressUpdateCallback

下载进度变化事件的回调函数

(result: OnProgressUpdateCallbackResult) => void
参数类型
resultOnProgressUpdateCallbackResult

OnHeadersReceivedCallbackResult

参数类型说明
headerTaroGeneral.IAnyObject开发者服务器返回的 HTTP Response Header

OnProgressUpdateCallbackResult

参数类型说明
progressnumber下载进度百分比
totalBytesExpectedToWritenumber预期需要下载的数据总长度,单位 Bytes
totalBytesWrittennumber已经下载的数据长度,单位 Bytes

DownloadTaskPromise

示例代码

const downloadTask = Taro.downloadFile({
url: 'http://example.com/audio/123', //仅为示例,并非真实的资源
success (res) {
Taro.playVoice({
filePath: res.tempFilePath
})
}
})

downloadTask.onProgressUpdate((res) => {
console.log('下载进度', res.progress)
console.log('已经下载的数据长度', res.totalBytesWritten)
console.log('预期需要下载的数据总长度', res.totalBytesExpectedToWrite)
})

downloadTask.abort() // 取消下载任务

API 支持度

API微信小程序百度小程序支付宝小程序抖音小程序H5React NativeHarmonyHarmony hybrid
DownloadTask✔️✔️✔️✔️✔️✔️✔️
DownloadTask.abort✔️✔️✔️✔️
DownloadTask.onProgressUpdate✔️✔️✔️✔️
DownloadTask.offProgressUpdate✔️✔️✔️✔️
DownloadTask.onHeadersReceived✔️✔️
DownloadTask.offHeadersReceived✔️✔️