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

操作步骤:

  1. 下载PDF文件
  2. 文件名包含中文
  3. 调用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打开失败。

解决方案:

  1. 重命名文件(推荐) 在调用uni.openDocument前,将文件重命名为英文或数字组合:

    // 下载文件后重命名
    const newPath = 'document.pdf';
    uni.saveFile({
      tempFilePath: filePath,
      success: (res) => {
        uni.openDocument({
          filePath: res.savedFilePath
        });
      }
    });
    
  2. URL编码处理 对文件路径进行编码:

    const encodedPath = encodeURI(filePath);
    uni.openDocument({
      filePath: encodedPath
    });
回到顶部