5

我正在构建一个应用程序,让用户在单击按钮时下载 PDF 文件。

为此,我使用库 react-native-fetch-blob。

它在 Android 上运行良好。

在 iOS 上,控制台日志告诉我下载运行良好,但是:

  • 我没有看到屏幕上发生任何事情(在 Android 上,有一条通知告诉我下载已完成)
  • 我在 iPad 上的任何地方都找不到该文件。没有“我的文件”文件夹或等效文件夹。

什么是实现我想要的正确方法?

4

1 回答 1

1

在 iOS 中对我有用的解决方案是在 fetch 中使用 RNFetchBlob.ios.openDocument 函数。此功能在您可以选择下载的设备文件资源管理器中打开文件。这是代码示例:

downloadPDFiOS (uri) {
let uriSplitted = uri.split("/");
const fileName = uriSplitted.pop();
const dirs = RNFetchBlob.fs.dirs;
RNFetchBlob
    .config({                
        path: dirs.DocumentDir + '/' + fileName,
        fileCache: true,
    })
    .fetch('GET', uri, {
        //some headers ..
    })
    .then((res) => {
        RNFetchBlob.ios.openDocument(res.data);
    })
    .catch((e) => {
        console.log('Error en el fetch: ', e);
    })
}
于 2019-07-29T10:39:15.770 回答