0

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

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

上面代码的问题在于它打开了网络浏览器并下载了文件。是否有任何方法可以通过设备的默认 PDF 查看器打开文件?

4

1 回答 1

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");
    }
  });
于 2021-10-14T11:17:12.013 回答