uni-app uni.openDocument 在iOS环境下文件名有中文会导致打开失败
uni-app uni.openDocument 在iOS环境下文件名有中文会导致打开失败
| 项目属性 | 值 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Mac |
| PC开发环境操作系统版本号 | macOS Big Sur |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.1.18 |
| 手机系统 | iOS |
| 手机系统版本号 | IOS 14 |
| 手机厂商 | 苹果 |
| 手机机型 | iphone11 |
| 页面类型 | vue |
| 打包方式 | 离线 |
| 项目创建方式 | HBuilderX |
操作步骤:
- 下载PDF文件
- 文件名包含中文
- 调用uni.openDocument 打开PDF文件
预期结果:
打开成功
实际结果:
打开失败
bug描述:
uni.openDocument 在iOS环境下,文件名有中文会导致打开失败
更多关于uni-app uni.openDocument 在iOS环境下文件名有中文会导致打开失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
解决了吗
更多关于uni-app uni.openDocument 在iOS环境下文件名有中文会导致打开失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个已知的iOS系统兼容性问题。当文件名包含中文时,iOS的文档预览控制器可能无法正确解析文件路径,导致uni.openDocument打开失败。
解决方案:
-
重命名文件(推荐) 在调用
uni.openDocument前,将文件重命名为英文或数字组合:// 下载文件后重命名 const newPath = 'document.pdf'; uni.saveFile({ tempFilePath: filePath, success: (res) => { uni.openDocument({ filePath: res.savedFilePath }); } }); -
URL编码处理 对文件路径进行编码:
const encodedPath = encodeURI(filePath); uni.openDocument({ filePath: encodedPath });

