我正在尝试从我的React本机项目中的URL打开PDF。
我创建了一个打开的报告文件:
import React, { Component } from 'react';
import PDFView from 'react-native-view-pdf';
class OpenBGReport extends Component {
render() {
return (
<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"
/>
);
}
}
export default OpenBGReport;
但是,我遇到了错误:Invariant Violation: Invariant Violation: requireNativeComponent: "PDFView" was not found in the UIManager.
我已经尝试过运行npm link react-native-pdf-view但仍然存在相同的错误。
如何在React Native中从URL打开PDF?
谢谢
答案 0 :(得分:0)
这是您手动链接到iOS的方式:
cd ios/ && pod deintegrate
然后将以下内容添加到您的Podfile
:
pod 'RNPDF', :path => '../node_modules/react-native-view-pdf'
然后运行pod install
。
这是您手动链接Android的方式:
转到您的MainApplication.java
并将以下内容添加到文件顶部:
import com.rumax.reactnative.pdfviewer.PDFViewPackage;
然后在其下方:
@Override
protected List<ReactPackage> getPackages() {
@SuppressWarnings("UnnecessaryLocalVariable")
List<ReactPackage> packages = new PackageList(this).getPackages();
// Packages that cannot be autolinked yet can be added manually here, for example:
// packages.add(new MyReactNativePackage());
packages.add(new PDFViewPackage());
return packages;
}
android/settings.gradle
中,添加: include ':react-native-view-pdf'
project(':react-native-view-pdf').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-view-pdf/android')
在android/app/build.gradle
中,添加:
implementation project(':react-native-view-pdf')
请记住,由于您说的是RN 0.59.8,因此您只需要执行上述操作,就无需进行RN 60ish之后的操作,因为所有内容现在都已自动关联。