You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将iOS端React Native应用内的文件保存到系统Files文件夹

iOS端React Native应用PDF导出到系统Files文件夹实现方案

前置权限配置

首先需要在iOS项目的Info.plist文件中添加以下两个配置项,值均设为YES:

  • UIFileSharingEnabled(Application supports iTunes file sharing):开启应用目录文件共享权限
  • LSSupportsOpeningDocumentsInPlace(Supports opening documents in place):允许其他应用直接访问你应用内的公开文件

两种实现方案

方案1:用户手动导出(推荐,符合苹果审核规则)

通过系统分享面板让用户自主选择「保存到文件」选项,无需额外权限申请,不会触发审核风险。
你可以使用react-native-share库快速实现,示例代码如下:

import Share from 'react-native-share';
import RNFS from 'react-native-fs';

// 替换为你的PDF文件实际路径
const pdfPath = `${RNFS.DocumentDirectoryPath}/your_generated_file.pdf`;

const saveToFiles = async () => {
  try {
    await Share.open({
      url: `file://${pdfPath}`,
      type: 'application/pdf',
      saveToFiles: true // iOS专属配置,优先展示保存到文件选项
    });
  } catch (err) {
    console.log('导出失败', err);
  }
};

调用上述方法后,系统会弹出分享菜单,用户选择「保存到文件」后可自主选择存储位置,保存后的文件可被所有应用访问。

方案2:自动同步到Files专属目录

如果你不需要用户手动操作,配置完上述两个Info.plist项之后,你存在应用内部Documents目录下的所有文件,会自动同步到Files.app → 我的iPhone → 你的应用名称文件夹下,所有应用都可以直接访问该目录下的文件。

注意:该目录和应用绑定,用户卸载应用时目录内的文件会被同步删除。


注意事项

  • 苹果不允许应用未经用户主动授权私自写入Files.app的公共目录(如下载、根目录等),如果需要存到公共位置,必须通过文档选择器让用户主动指定目标路径。
  • 生成PDF时建议将文件权限设置为0o644,避免其他应用无权限读取文件内容。
  • 所有文件相关操作建议在真机上测试,模拟器的Files.app逻辑和真机存在差异。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:24:06