title: DownloadTask

sidebar_label: DownloadTask

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

支持情况:DownloadTask - 图1 DownloadTask - 图2 DownloadTask - 图3 DownloadTask - 图4 DownloadTask - 图5

参考文档

方法

abort

中断下载任务

支持情况:DownloadTask - 图6 DownloadTask - 图7 DownloadTask - 图8

参考文档

  1. () => void

onProgressUpdate

监听下载进度变化事件

支持情况:DownloadTask - 图9 DownloadTask - 图10 DownloadTask - 图11

参考文档

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

offProgressUpdate

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

支持情况:DownloadTask - 图12 DownloadTask - 图13 DownloadTask - 图14

参考文档

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

onHeadersReceived

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

支持情况:DownloadTask - 图15 DownloadTask - 图16 DownloadTask - 图17

参考文档

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

offHeadersReceived

取消监听 HTTP Response Header 事件

支持情况:DownloadTask - 图18 DownloadTask - 图19 DownloadTask - 图20

参考文档

  1. (callback: OffHeadersReceivedCallback) => void
参数 类型 说明
callback OffHeadersReceivedCallback HTTP Response Header 事件的回调函数

参数

OffHeadersReceivedCallback

HTTP Response Header 事件的回调函数

  1. (res: TaroGeneral.CallbackResult) => void
参数 类型
res TaroGeneral.CallbackResult

OffProgressUpdateCallback

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

  1. (res: TaroGeneral.CallbackResult) => void
参数 类型
res TaroGeneral.CallbackResult

OnHeadersReceivedCallback

HTTP Response Header 事件的回调函数

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

OnProgressUpdateCallback

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

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

OnHeadersReceivedCallbackResult

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

OnProgressUpdateCallbackResult

参数 类型 说明
progress number 下载进度百分比
totalBytesExpectedToWrite number 预期需要下载的数据总长度,单位 Bytes
totalBytesWritten number 已经下载的数据长度,单位 Bytes

DownloadTaskPromise

示例代码

  1. const downloadTask = Taro.downloadFile({
  2. url: 'http://example.com/audio/123', //仅为示例,并非真实的资源
  3. success (res) {
  4. Taro.playVoice({
  5. filePath: res.tempFilePath
  6. })
  7. }
  8. })
  9. downloadTask.onProgressUpdate((res) => {
  10. console.log('下载进度', res.progress)
  11. console.log('已经下载的数据长度', res.totalBytesWritten)
  12. console.log('预期需要下载的数据总长度', res.totalBytesExpectedToWrite)
  13. })
  14. downloadTask.abort() // 取消下载任务

API 支持度

API 微信小程序 百度小程序 支付宝小程序 H5 React Native
DownloadTask ✔️ ✔️ ✔️ ✔️ ✔️
DownloadTask.abort ✔️ ✔️ ✔️
DownloadTask.onProgressUpdate ✔️ ✔️ ✔️
DownloadTask.offProgressUpdate ✔️ ✔️ ✔️
DownloadTask.onHeadersReceived ✔️ ✔️
DownloadTask.offHeadersReceived ✔️ ✔️