【问题标题】:React Native View PDF反应本机查看 PDF
【发布时间】:2021-10-14 09:20:50
【问题描述】:

我有一个 react-native 应用程序,它使用 Linking 打开一个 PDF 文档,如下所示:

const handlePress = () => {
    Linking.openURL(
      "https://link/to/file.pdf"
    );
};

上述代码的问题在于它打开了网络浏览器并下载了文件。有没有什么办法可以通过设备默认的PDF查看器打开文件?

【问题讨论】:

  • 您可以下载文件并使用手机上的第三方应用程序使用 RN-Fetch-blob 打开它

标签: react-native react-native-linking


【解决方案1】:

您可以使用rn-fetch-blob 将 PDF 下载到您的手机存储中,然后使用默认的 PDF 查看器打开它,如下所示:

import { Platform } from "react-native";
import RNFetchBlob from 'rn-fetch-blob'

const android = RNFetchBlob.android;

RNFetchBlob.config({
  addAndroidDownloads: {
    useDownloadManager: true,
    title: "awesome.pdf",
    description: "An awesome PDF",
    mime: "application/pdf",
    mediaScannable: true,
    notification: true,
  },
})
  .fetch("GET", `http://www.example.com/awesome.pdf`)
  .then((res) => {
    const path = res.path();
    if (Platform.OS === "ios") {
      RNFetchBlob.ios.openDocument(path);
    } else {
      android.actionViewIntent(path, "application/pdf");
    }
  });

【讨论】:

  • 您能告诉我如何在 Expo 管理的项目中实现相同的功能吗?
  • 对不起,我不使用 Expo。
  • 您能接受答案吗?也许是赞成票?谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-17
  • 1970-01-01
  • 1970-01-01
  • 2021-08-16
  • 2011-08-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多