ios - React Native:将 PDF 下载到本地存储 (ios)
问题描述
我有以下功能可以从我的服务器下载 PDF:
const downloadInvoice = (invoiceId) => {
const path = `${RNFetchBlob.fs.dirs.DocumentDir}/${invoiceId}.pdf`;
RNFetchBlob.config({
fileCache: true,
path,
}).fetch('GET', `${Urls.base}/pro/invoice?invoiceId=${invoiceId}`, {
...authorizationHeaders
}).then((response) => {
RNFetchBlob.ios.openDocument(path);
}).catch((error) => {
Alert.alert(error);
});
};
当我运行此代码时,文档会在我的 iPhone 上打开,我可以看到 PDF 文件。问题是,关闭窗口后,我无法在任何地方找到 PDF 文档。该文档似乎存储在缓存中,但我希望它存储在我的 iPhone 上可访问的文件夹中以供以后用户使用(或将其打印或传输到我的笔记本电脑)。
路径看起来像:/var/mobile/Containers/Data/Application/AD1F85AC-456F-321A-A4B2-1B248F1134C1/Documents/20-02-2020-01-02.pdf
. 此外,当我 console.log response.path() 时,它具有相同的路径。
我正在使用rn-fetch-blod,但我看到这个包没有维护。如果有人有好的选择,我很高兴听到。
解决方案
添加此info.plist
键iOS
<key> UIFileSharingEnabled</key>
<true/>
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
推荐阅读
- gitlab - 从 `only/except` 移植:如何仅针对在 .gitlab-ci.yml 中排除带有 `rules` 的模式的标签运行 gitlab-ci 作业?
- reactjs - 是否可以覆盖 react-admin 过滤器参数?
- c++ - [cpp.pre]/7 中的措辞与其示例之间是否有任何关系?
- scala - 无法使用 WholeTextFiles 方法使用 Spark 读取位于 Unix 文件系统上的文件
- c# - WPF 数据绑定在初始化后不起作用。没有绑定错误
- xml - 为什么 Eclipse 认为我的 XML 语法有误?
- javafx - 如何使用 javaFX 绘制五边形
- c - 删除 main 中的 int 后,BST 代码停止工作
- javascript - 为什么我的 VUE 数组元素没有渲染,
- node.js - 调试 Slack WebHook