React Native - 在应用程序中打开本地pdf文件

时间:2018-05-24 22:30:09

标签: android react-native

我有一个pdf,我想在点击一个按钮后显示给用户。我成功地向用户展示了类似的pdf:

<TouchableOpacity onPress={() => Linking.openURL('www.somesite.com/manual.pdf')}>
  <Text>See pdf</Text>
</TouchableOpacity>

这很棒,因为它打开了一个原生的pdf阅读器并相应地下载了内容。我想用本地应用程序pdf文件获得类似的结果,但我不知道如何使用openUrl api实现类似的效果。

我在How to open local PDF file in WebView in Android?看到了答案的答案,但似乎这个解决方案创建了一个webView组件,必须在app组件中进行样式化和布局。这不是我想要的。我只是想要一个原生的pdf查看器来读取本地文件内容并做其事。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用"react-native-view-pdf软件包。这非常简单,并且NPM依赖项为零:

import PDFView from 'react-native-view-pdf';

<View style={{ flex: 1 }}>
  <PDFView
    style={{ flex: 1 }}
    onError={(error) => console.log('onError', error)}
    onLoad={() => console.log('PDF rendered from url')}
    resource="http://www.pdf995.com/samples/pdf.pdf"
    resourceType="url"
  />
</View>

并且此解决方案允许轻松地将PDF文档嵌入到应用程序中,而不用通过外部应用程序打开它。例如,它可以是一个单独的页面。我们已经在生产中使用了一段时间,没有任何问题,它使我们可以从本地文件,URL或base64字符串打开PDF。

否则,如果要外部应用程序打开PDF,则需要将其写入文件并使用“链接”。