uni-app ios下载资源失败,闪退,android正常
uni-app ios下载资源失败,闪退,android正常
示例代码:
uni.downloadFile({
url,
success(e){
console.log(‘success’, e);
},
fail(e){
console.log(‘err’, e);
}
})
## 操作步骤:
- ios下载我提供的地址。
## 预期结果:
- 下载成功,和android一样。
## 实际结果:
- 下载失败,闪退
## bug描述:
公司网盘资源路径,ios下,uni.downloadFile(5+的downloader)都下载失败,其中5+方法会闪退。android没问题。
ps: 下载路径我填在机密信息里了。
代码执行结果我已截图
| 信息类别 | 信息内容 |
|---------|---------|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | window10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.1.18 |
| 手机系统 | iOS |
| 手机系统版本号 | iOS 12.1 |
| 手机厂商 | 苹果 |
| 手机机型 | iphone6iphone8等 |
| 页面类型 | vue |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
更多关于uni-app ios下载资源失败,闪退,android正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html
我这可以下载成功,你换个其他链接试试? 或者从测试设备上找找原因?
更多关于uni-app ios下载资源失败,闪退,android正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html
我就是新建了uni-app,然后用了uni.downloadFile就不得行,android又可以下载,路径都是一样的
我的链接肯定没问题,丢到浏览器就能下载,uni-app运行到android用uni.downloadFile也没问题,运行到ios就报错了
回复 l***@163.com: 用你的链接 我可以下载成功啊
回复 DCloud_iOS_WZT: 我用的iphone8 ios系统是12
回复 DCloud_iOS_WZT: hx 3.1.18.20210609
回复 l***@163.com: 提供一个能复现的demo吧,我这复现不了
回复 DCloud_iOS_WZT: 我上传了管理员可见附件了
回复 DCloud_iOS_WZT: 哦 你是说在url末尾加; 好像是可以了
回复 l***@163.com: 第一次出现过后面又复现不出来了…
回复 DCloud_iOS_WZT: url后面加个;确实可以了,感谢
回复 l***@163.com: 应该是语法问题 你先改下 我这边再看下具体是什么原因导致的
回复 DCloud_iOS_WZT: 好像有问题,加上;下载下来的打不开,删掉;还是会闪退
回复 l***@163.com: 我这复现不出来了又
回复 DCloud_iOS_WZT: 我换了一个pdf的链接,更新在机密信息里了,你试试呢
你这个图片地址就是这个么 有其他的图片地址吗 发我试试
回复 l***@163.com: 你这个都是pdf?
回复 DCloud_iOS_WZT: id=1014817675597053952 这个是pdf
回复 l***@163.com: 我这里成功的。。
回复 DCloud_iOS_WZT: 这个和服务没关系吧,因为android没有问题。而且只是一个download链接,我复制到ios测试机的浏览器也能下载成功,就是在uni不行
回复 l***@163.com: 有没有能稳定复现的地址,现在应该是超时了
回复 l***@163.com: 这个txt我这没问题,你换个大图试试?
回复 DCloud_iOS_WZT: 我哭了,这个txt我这边也不行,这怎么搞
回复 DCloud_iOS_WZT: 不能加;在url后面,这样下载下来的不对
回复 l***@163.com: 我这一直可以。。
回复 DCloud_iOS_WZT: app 真机运行,我这边一定会闪退。iphone 6 8 x 都是
回复 l***@163.com: 我这一直可以 尴尬。。
看报错信息 像是你路径的问题
这是一个典型的iOS下载兼容性问题。从你的描述来看,主要可能涉及以下几个原因:
-
URL Scheme限制:iOS对下载地址有更严格的校验,确保你的URL是有效的HTTPS链接。iOS要求使用HTTPS,如果使用HTTP需要在manifest.json中配置白名单。
-
文件类型限制:iOS对某些文件类型的下载有安全限制,检查你的文件类型是否被iOS系统允许。
-
存储权限问题:iOS的沙盒机制对文件存储路径有严格要求,确保使用正确的可写目录:
const downloadTask = uni.downloadFile({
url: 'your_url',
success: (res) => {
if (res.statusCode === 200) {
uni.saveFile({
tempFilePath: res.tempFilePath,
success: function (saveRes) {
console.log('文件保存成功', saveRes.savedFilePath);
}
});
}
}
});
- 网络配置问题:在manifest.json中检查iOS的网络权限配置,确保已正确设置:
{
"networkTimeout": {
"request": 30000,
"downloadFile": 30000
}
}

