React-Native,Pdf 在 android 模拟器上显示,但在实际的 android 设备上出现错误
Posted
技术标签:
【中文标题】React-Native,Pdf 在 android 模拟器上显示,但在实际的 android 设备上出现错误【英文标题】:React-Native, Pdf showing on android simulator but getting error on actual android device 【发布时间】:2019-04-23 07:07:04 【问题描述】:我已经安装了 react-native-pdf 和 rn-fetch-blob 包来显示 pdf 文件。它在模拟器上工作得很好,但由于某种原因我得到“错误:打开失败:ENOENT(没有这样的文件或目录)” .
下面是我的代码:
import React, Component from 'react';
import
StyleSheet,
Dimensions,
View
from 'react-native';
import Pdf from 'react-native-pdf';
// Screen that shows the contents of a PDF
export default class OpenPdf extends Component
static navigationOptions =
title: 'Product Variants'
;
render()
const source = require('../assets/Product_Variants_Electric_Connections.pdf');
return (
<View style=width: '100%', height: '100%'>
<Pdf style=styles.pdf
source=source
onLoadComplete=(numberOfPages, filePath) =>
alert(`number of pages: $numberOfPages`);
onPageChanged=(page, numberOfPages) =>
alert(`current page: $page`);
onError=(error) =>
alert(`error`+error);
/>
</View>
);
const styles = StyleSheet.create(
container:
flex: 1,
justifyContent: 'center',
alignItems: 'center'
,
pdf:
flex: 1,
width: Dimensions.get('window').width
);
我已经浏览了很多链接,没有一个问题与我的相似。 请建议我缺少什么。
【问题讨论】:
显然因为你分配了本地 url 【参考方案1】:正如上面@Hardik Virani 在评论中所建议的,我已经删除了本地网址并做了如下操作:
render()
const source = uri:'bundle-assets://Product_Variants_Electric_Connections.pdf', cache: true;
return (
<View style=width: '100%', height: '100%'>
<Pdf style=styles.pdf
source=source
/>
</View>
);
记住只需将您的实际 pdf 文件放在项目的 android/app/src/main/assets/pdf 文件夹中即可。
【讨论】:
以上是关于React-Native,Pdf 在 android 模拟器上显示,但在实际的 android 设备上出现错误的主要内容,如果未能解决你的问题,请参考以下文章
我已经按照 react-native 文档开始使用,但是在运行 npx react-native run-android 后我一直无法启动默认应用程序本身
tesseract v3.03 使用可搜索文本示例呈现 PDF