react-native-view-pdf可在react-native应用中显示pdf

时间:2019-09-19 06:07:15

标签: react-native

我正在使用react-native-view-pdf在我的react-native应用程序中显示pdf。我使用的参考是https://www.npmjs.com/package/react-native-view-pdf。我在下面使用代码=>

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

const resources = {
  file: Platform.OS === 'ios' ? 'sample.pdf' : '../assets/sample.pdf',
};
export default class App extends React.Component {
  render() {
    const resourceType = 'file';

    return (
      <View style={{ flex: 1 }}>
        {/* Some Controls to change PDF resource */}
        <PDFView
          fadeInDuration={250.0}
          style={{ flex: 1 }}
          resource={resources[resourceType]}
          resourceType={resourceType}
          onLoad={() => console.log(`PDF rendered from ${resourceType}`);}
          onError={() => console.log('Cannot render PDF', error)}
        />
      </View>
    );
  }
}

首先,我在onLoad={}行中遇到语法错误 当我删除该行时,我将遇到以下图像链接中所示的错误。

https://i.stack.imgur.com/shwgL.jpg

我也尝试通过使用README.md手动更改它来进行尝试,其中包括以下=>

安卓系统
  1. 打开android/app/src/main/java/[...]/MainApplication.java
    • import com.rumax.reactnative.pdfviewer.PDFViewPackage;添加到文件顶部的导入
    • new PDFViewPackage()添加到getPackages()方法返回的列表中
  2. 将以下行添加到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')
    
  3. 将以下行插入android/app/build.gradle中的依赖关系块中:
    compile project(':react-native-view-pdf')
    

我先用过:

  

“ node_modules / react-native-view-pdf / android / build.gradle”(在文档中为“ android / app / build.gradle”)

我用了第二个:

  

“ node_modules / react-native-view-pdf / android / src / main / java / com / rumax / reactnative / pdfviewer / PDFView.java”(在文档中为“ MainApplication.java”)

第三个文件是:

  

在“ node_modules / react-native-view-pdf / android /”中找不到的“ android / settings.gradle”

所以我无法手动设置它。

可能是我使用了错误的文件路径来手动设置它。如果有人对此有任何想法或建议,以更好的方式解决。请帮帮我。 或者,如果还有其他方法可以解决"displaying a pdf in react-native",请也提供给我。

3 个答案:

答案 0 :(得分:1)

手动设置链接问题即可解决,而不是通过在命令提示符下使用命令集RNFB_ANDROID_PERMISSIONS = true来解决。

但是现在在[link] https://www.npmjs.com/package/react-native-view-pdf中使用这种格式仍然出现错误 requireNativeComponent "PDFView" was not found in the UIManager. 任何对此有想法的人。或任何其他以react-native格式显示pdf的方式,请告诉我。

答案 1 :(得分:0)

您可以尝试手动链接或重新检查所有内容放置是否正确

android/app/build.gradle中,添加/检查

implementation project(':react-native-view-pdf')

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')

MainApplication.java中添加/检查

import com.rumax.reactnative.pdfviewer.PDFViewPackage;

然后在其下方:

@Override
protected List<ReactPackage> getPackages() {
  return Arrays.<ReactPackage>asList(
      new MainReactPackage(),
      new MapsPackage(),
      new PDFViewPackage(), // Check here
      new RCTPdfView(),
      new MapsPackage(),
      new RNFetchBlobPackage()
  );
}

尝试检查所有内容,并让我知道您是否错过了插件链接

答案 2 :(得分:0)

尝试“ react-native-link react-native-view-pdf”。 它将解决问题。