首页 > 解决方案 > 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,但我看到这个包没有维护。如果有人有好的选择,我很高兴听到。

标签: iosreact-nativern-fetch-blob

解决方案


添加此info.plistiOS

<key> UIFileSharingEnabled</key>
<true/>
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>

来源:https ://github.com/joltup/rn-fetch-blob/issues/212


推荐阅读