You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Cordova File插件在iOS 11设备上生成的PDF文件无法找到怎么办?

iOS 11上用Cordova File Plugin创建PDF后找不到文件的解决办法

咱先搞明白核心问题:iOS的App都是沙盒机制,每个App都有自己独立的私密文件夹,默认情况下系统的「文件」App、其他应用甚至你自己手动找都没法直接访问这个文件夹里的内容。你用的cordova.file.documentsDirectorycordova.file.syncedDataDir都是沙盒里的目录,所以才找不到。下面给你几个靠谱的解决办法:

方法一:开启App的文件共享权限(最推荐)

只要给App加两个配置,就能让沙盒里的Documents目录对外可见,步骤如下:

  1. 打开你的Cordova项目根目录下的config.xml,添加iOS平台的配置:
    <platform name="ios">
        <!-- 开启文件共享,让App在iTunes和文件App里可见 -->
        <config-file parent="UIFileSharingEnabled" platform="ios" target="*-Info.plist">
            <true/>
        </config-file>
        <!-- 允许在文件App里直接打开文件,不用复制 -->
        <config-file parent="LSSupportsOpeningDocumentsInPlace" platform="ios" target="*-Info.plist">
            <true/>
        </config-file>
    </platform>
    
  2. 重新编译你的iOS App(ionic cordova build ios),然后重新安装到iPhone上。
  3. 现在再把PDF写到cordova.file.documentsDirectory,你就能通过两种方式找到文件:
    • 用系统「文件」App:打开「文件」→「浏览」→拉到「我的iPhone」区域,找到你的App图标,点进去就能看到Documents目录里的PDF了。
    • 用iTunes(电脑端):把iPhone连到电脑,打开iTunes→找到你的设备→「文件共享」→选中你的App,右侧就能看到Documents目录里的文件,还能导出到电脑。

方法二:用Xcode查看沙盒文件(测试阶段用)

如果你只是想确认文件确实创建成功了,不用对外共享,可以直接用Xcode查看:

  1. 把iPhone连到电脑,打开Xcode。
  2. 顶部菜单选「Window」→「Devices and Simulators」。
  3. 在左侧列表里找到你的iPhone,然后找到你的App,点击「Download Container」。
  4. 把下载的容器文件右键解压,就能在AppData/Documents或者AppData/Library/Cloud里找到你的PDF了。

额外注意事项

  • iOS沙盒里的应用ID目录(就是那些随机字符串,比如CDFC4E19-082F-4878-9168-F4A735CDAFEB每次重新安装App都会改变,所以你之前记录的旧路径在重新安装后就失效了,这点要留意。
  • 可以用Cordova File的checkFile方法验证文件是否存在,避免路径写错:
    const filePath = '你的PDF完整路径';
    window.resolveLocalFileSystemURL(filePath, 
        (fileEntry) => console.log('文件确实存在:', fileEntry.name),
        (error) => console.error('文件找不到:', error)
    );
    

内容的提问来源于stack exchange,提问作者AndrWeisR

火山引擎 最新活动