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

29 回复

我这可以下载成功,你换个其他链接试试? 或者从测试设备上找找原因?

更多关于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下载兼容性问题。从你的描述来看,主要可能涉及以下几个原因:

  1. URL Scheme限制:iOS对下载地址有更严格的校验,确保你的URL是有效的HTTPS链接。iOS要求使用HTTPS,如果使用HTTP需要在manifest.json中配置白名单。

  2. 文件类型限制:iOS对某些文件类型的下载有安全限制,检查你的文件类型是否被iOS系统允许。

  3. 存储权限问题: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);
                }
            });
        }
    }
});
  1. 网络配置问题:在manifest.json中检查iOS的网络权限配置,确保已正确设置:
{
    "networkTimeout": {
        "request": 30000,
        "downloadFile": 30000
    }
}
回到顶部