如何通过React Native在第三方应用程序中打开PDF文件?

oprakyz7  于 2023-01-05  发布在  React
关注(0)|答案(4)|浏览(346)

我不想使用RN库来创建PDF查看器,我想点击一个文件图标,并询问我想在哪个安装的应用程序中打开该文件。
有图书馆允许我这么做吗?

bd1hkmkf

bd1hkmkf1#

我已经在我的项目中使用了rn-fetch-blob,之后,它就像做一样容易;
安卓

const android = RNFetchBlob.android;
android.actionViewIntent(path, 'application/pdf');

iOS操作系统

RNFetchBlob.ios.openDocument(path);
kknvjkwl

kknvjkwl2#

也许,您可以使用react native本身的Linking来打开pdf文件,例如:

Linking.openURL(url).catch((err) => {
      console.log(err)
});

如果url是本地的,您可能需要使用类似于:

import RNFS from 'react-native-fs';

file://${RNFS.DocumentDirectoryPath}/file.pdf.
或者如果是在线,则url可以是:

http://www.example.com/file.pdf

您也可以尝试使用此软件包:
react-native-view-pdf
在这里让我知道进展如何。如果这解决了你的问题,投赞成票。:d)

px9o7tmv

px9o7tmv3#

我不能让它与本地PDF文件的链接一起工作。然后我搜索了更多,找到了react-native-file-viewer。有了这个,你可以像这样简单地打开PDF:

import FileViewer from "react-native-file-viewer";
 ... 

 try {
     await FileViewer.open(url, { showOpenWithDialog: true, showAppsSuggestions: true });
 } catch (e) {
     console.warn(TAG, "An error occurred", JSON.stringify(e));
 }

注意:传递给open函数的uri不需要任何file://前缀,只需要普通的路径,比如RNFS.ExternalStorageDirectoryPath + "/mypdf.pdf"

lg40wkob

lg40wkob4#

加载远程PDF的简单方法,请尝试以下操作

Linking.openURL(url).catch((err) => {
  console.log(err)
})

相关问题