4

需要编写一个文件(pdf)并将其存储在设备内存中。我正在使用 react-native-fs 库。

我想让用户也能够使用 iBooks 阅读这个文件。

这些是 react-native-fs 的常量

  • MainBundlePath (String) 主包目录的绝对路径
  • CachesDirectoryPath (String) 缓存目录的绝对路径
  • DocumentDirectoryPath (String) 文档目录的绝对路径

  • TemporaryDirectoryPath (String) 临时目录的绝对路径(仅限 iOS)

这是我的下载代码

  RNFS.downloadFile({
      fromUrl: fileLink,          
      toFile: RNFS.MainBundlePath + '/' + fileName
    }).promise.then((dwResult) => {

      console.log(dwResult.jobId + 'jobid');
      return true
    }).catch((err) => {

      alert(err);
      return false
    })
  }

我必须分配什么 toFile 以便可以使用 iBooks 看到写入的文件。注意:我可以使用 DocumentDirectoryPath 编写文件应用程序的路径。

4

1 回答 1

2

iOS 存在一些限制,因此您可能无法直接使用 iBooks 打开文件。然而,最新的react-native-fetch-blob测试版有一个 API,它显示一个选项菜单,让用户决定如何处理文件。

或者,您可以使用默认文档查看器直接预览文件,还有一个Share Button用于显示选项菜单

下载并打开 PDF 文件的示例react-native-fetch-blob

  RNFetchBlob.config({
    fileCache : true,
    appendExt : 'pdf'
  })
  .fetch('GET',`${TEST_SERVER_URL}/public/book.pdf`)
  .then((res) => {
    // open the document directly
    RNFetchBlob.ios.previewDocument(res.path())
    // or show options
    // RNFetchBlob.ios.openDocument(res.path())
  })
于 2016-10-12T14:50:25.970 回答