uni-app openDocument ios 提示文件不存在
uni-app openDocument ios 提示文件不存在
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Mac | 11.2.3 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Mac
PC开发环境操作系统版本号:11.2.3
HBuilderX类型:正式
HBuilderX版本号:3.2.16
手机系统:iOS
手机系统版本号:iOS 15
手机厂商:苹果
手机机型:iphone11
页面类型:vue
vue版本:vue2
打包方式:云端
项目创建方式:HBuilderX
### 示例代码:
```javascript
openDocument() {
uni.downloadFile({
url: 'http://122.9.134.74:9530/jeeplus-vue/userfiles/bussinessFlie/hr/CrrcPaList/2021/12/testpdf.pdf',
success: (res) => {
console.log(res)
uni.openDocument({
filePath: res.tempFilePath,
success: () => {
console.log('打开文档成功');
},
fail(res) {
console.log(res)
}
});
}
});
},
操作步骤:
- 点击 url 预览文件
预期结果:
- 软件内打开文件
实际结果:
- 提示
{
"errMsg": "openDocument:fail 文件不存在,https://ask.dcloud.net.cn/article/282",
"errCode": -4,
"code": -4
}
bug描述:
ios直接预览文件 ,download提示都成功 但是打开时提示
{
"errMsg": "openDocument:fail 文件不存在,https://ask.dcloud.net.cn/article/282",
"errCode": -4,
"code": -4
}
更多关于uni-app openDocument ios 提示文件不存在的实战教程也可以访问 https://www.itying.com/category-93-b0.html
此版本使用其他设备是否正常?仅这个设备出现问题吗?
更多关于uni-app openDocument ios 提示文件不存在的实战教程也可以访问 https://www.itying.com/category-93-b0.html
只测过这一个设备 你那边试过我提供的url 吗
url 携带的信息是有什么特殊的吗 ios 的http response中需要指定啥参数吗, 我在示例中有些url 在ios可以打开
我两种方式验证了下 1.浏览器下载了pdf 本地起个web服务正常 2.手机抓包 发现 http的response 的 content-type 无效
回复 天生DR: 加上了content-type 也还是不行
回复 1***@163.com: 你本地起个web 服务 然后把这个文件 试一下 然后对比一下服务端是不是有什么特殊限制
回复 天生DR: 你的意思将uniapp 用web打开 ?
回复 1***@163.com: 就是你本地模拟服务器 起个服务 我这边是OK的 不知道你们服务端做了什么…
这个问题通常是由于iOS系统对文件路径的安全限制导致的。以下是几个关键点:
-
临时文件路径问题:iOS系统对临时文件的访问有严格限制,
downloadFile返回的临时文件路径可能无法被openDocument直接访问。 -
解决方案:
- 使用
uni.saveFile将文件保存到本地永久存储后再打开:
uni.downloadFile({ url: 'your_url', success: (res) => { uni.saveFile({ tempFilePath: res.tempFilePath, success: (savedRes) => { uni.openDocument({ filePath: savedRes.savedFilePath, success: () => { console.log('打开成功'); } }); } }); } }); - 使用


