uni-app 微信小程序环境下调用uni.downloadFile Android手机下载不了的问题
uni-app 微信小程序环境下调用uni.downloadFile Android手机下载不了的问题
| 项目信息 | 详情 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境 | Windows |
| PC开发环境版本号 | win10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.1.22 |
| 手机系统 | Android |
| 手机系统版本号 | Android 10 |
| 手机厂商 | 联想 |
| 手机机型 | 小新 |
| 页面类型 | vue |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
操作步骤:
uni.downloadFile({
url: i.val,
success(res) {
// 没执行
var filePath = res.tempFilePath
that.modalShow = false
uni.openDocument({
filePath: filePath,
success(res) {
console.log('打开文档成功')
},
fail(err) {
uni.showToast({
title: err,
duration: 10000
})
}
})
},
fail: (err) => {
// 没执行
uni.showToast({
title: err,
duration: 10000
})
},
complete: () => {
// 执行了
}
})
预期结果:
- success里面能正常返回临时地址
实际结果:
- success不能返回临时地址,fail里面没有报错
bug描述:
在微信小程序环境里,调用uni.downloadFile,Android手机 下载不了。success 和 fail 不会返回东西,complete 执行了。
在微信小程序开发环境下是可以下载的,但是上传到微信平台上(体验版和线上版本都不可以下载)
合法域名都已配置
更多关于uni-app 微信小程序环境下调用uni.downloadFile Android手机下载不了的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
直接新建一个微信小程序(非 uni-app)单独测试一下是否仍然存在,如仍然存在此问题,到微信小程序社区反馈一下。
更多关于uni-app 微信小程序环境下调用uni.downloadFile Android手机下载不了的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
测试了,微信小程序确实也是打不开…
回复 sallyxixi: 请问大佬解决了吗?我也遇到了
根据你的描述,问题出现在微信小程序平台(体验版和线上版),而开发工具中正常。这通常与微信小程序的网络请求安全策略有关。
核心问题分析:
-
域名校验:微信小程序要求所有网络请求的域名必须在小程序管理后台的「开发」-「开发管理」-「开发设置」-「服务器域名」中配置。即使你在代码中使用了合法域名,也必须在此处添加下载文件的域名。
- 请登录微信小程序后台,检查
downloadFile使用的url域名是否已加入 downloadFile合法域名 列表(注意:request 和 downloadFile 的域名配置是分开的)。
- 请登录微信小程序后台,检查
-
HTTPS 要求:微信小程序正式环境要求所有网络请求必须使用 HTTPS。请确认你的下载链接是
https://开头,且 SSL 证书有效。 -
文件类型限制:微信小程序对
downloadFile下载的文件类型有安全限制。某些文件类型(如 .apk, .exe 等可执行文件)可能被阻止。请确认你下载的文件类型是否被允许。
排查步骤:
-
检查微信后台配置:
- 登录 微信公众平台。
- 进入「开发管理」-「开发设置」-「服务器域名」。
- 确保你的下载文件域名已添加到 downloadFile合法域名 列表中。
-
检查 URL 协议:
- 确保
url是https://开头。正式环境不支持http://。
- 确保
-
添加网络请求超时:
- 在
uni.downloadFile参数中添加timeout设置,避免因网络慢导致无回调。
uni.downloadFile({ url: i.val, timeout: 10000, // 10秒超时 success(res) { ... }, fail(err) { ... } }); - 在

