search
开发文档
开发文档/小游戏开发/API/网络/下载
下载更新时间:2025-12-17 15:56:03

qg.downloadFile

基础信息说明

功能概述:下载文件资源到本地,获取下载进度、响应头与结果

项目说明
版本要求
前提条件目标 URL 可访问、网络权限已配置
使用限制Header 中不能设置 Referer;客户端直接发起 HTTPS GET 请求
相关教程

参数说明

qg.downloadFile(option)

属性名类型默认值(如有)必填说明
urlString-下载资源的 URL
headerObject-HTTP 请求 Header,Header 中不能设置 Referer
filePathString-指定文件下载后存储的路径(未传入参数时保存为临时路径;内部映射为 savedUri)
successFunction-下载成功回调,参数详见“回调结果说明”
failFunction-下载失败回调,参数详见“回调结果说明”
completeFunction-下载完成回调(成功或失败都会执行)

返回值说明

qg.downloadFile() 为同步接口,调用后立即返回 QGDownloadTask 实例。

属性名类型说明
downloadTaskQGDownloadTask下载任务对象,用于监听进度、响应头与取消任务

QGDownloadTask 对象方法

方法名类型同步/异步说明
abort()Function同步中断下载任务
onProgressUpdate(cb)Function异步回调订阅下载进度事件,回调参数为 { progress, totalBytesWritten, totalBytesExpectedToWrite }
offProgressUpdate(cb)Function同步取消订阅对应的进度事件
onHeadersReceived(cb)Function异步回调订阅响应头事件,回调参数为 { header },比完成事件更早触发
offHeadersReceived(cb)Function同步取消订阅对应的响应头事件

回调结果说明

successfailcomplete 以及 onProgressUpdateonHeadersReceived 注册的回调均为异步事件,由底层下载任务在流程中触发。
触发时机如下:

  • success:下载完成后触发
  • fail:下载过程中发生错误触发
  • complete:下载流程结束后触发(成功或失败都会执行)
  • onProgressUpdate:下载过程中多次触发进度更新
  • onHeadersReceived:收到 HTTP 响应头时触发,早于完成事件

回调成功

success / complete 成功形态

属性名类型说明
statusCodeNumberHTTP 状态码(来自底层 data.code)
tempFilePathString下载文件的本地临时路径(来自底层 savedUri)

onProgressUpdate 回调

属性名类型说明
progressNumber下载进度百分比(0-100)
totalBytesWrittenNumber已下载字节数
totalBytesExpectedToWriteNumber预计需要下载的总字节数

onHeadersReceived 回调

属性名类型说明
headerObject响应头字典(底层返回的 headers)

回调失败
fail / complete 失败形态

属性名类型说明
errMsgString错误描述(来自底层 data.data)

示例代码

// 基本下载示例
const task = qg.downloadFile({
url: 'https://example.com/assets/sprite.png',
header: { 'Accept': 'application/octet-stream' },
success(res) {
console.log('下载成功', res.statusCode, res.tempFilePath)
},
fail(err) {
console.error('下载失败', err)
},
complete(res) {
console.log('下载完成', res)
}
})

// 如需中断下载
// task.abort()

注意事项

  • Header 中禁止设置 Referer。
  • 并发下载时,建议通过不同任务分别绑定监听,避免回调交叉。
上一篇:数据请求
下一篇:上传
文档内容是否有帮助?
有帮助
无帮助