React Native:将 PDF 下载到本地存储 (ios)

React Native: download PDF to local storage (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 文件。问题是,关闭 window 后,我在任何地方都找不到 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/>

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