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/>
我有以下功能可以从我的服务器下载 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/>