Просмотр PDF-файла с URL-адреса в проекте «Экспо-Реакт» - PullRequest
0 голосов
/ 18 октября 2019

Я пытался открыть PDF-файл, используя реакционную нативную, но каждая библиотека, которую я пробую, выдает ошибку. Я попробовал приведенный ниже код:

import React, { Component } from 'react';
import Pdf from 'react-native-pdf';

class OpenBGReport extends Component {
  render() {
    const source = {uri:'http://samples.leanpub.com/thereactnativebook-sample.pdf',cache:true};

    return (
      <View style={styles.container}>
        <Pdf
                    source={source}
                    onLoadComplete={(numberOfPages,filePath)=>{
                        console.log(`number of pages: ${numberOfPages}`);
                    }}
                    onPageChanged={(page,numberOfPages)=>{
                        console.log(`current page: ${page}`);
                    }}
                    onError={(error)=>{
                        console.log(error);
                    }}
                    style={styles.pdf}/>
      </View>
    );
  }
}

const styles = StyleSheet.create({
    container: {
        flex: 1,
        justifyContent: 'flex-start',
        alignItems: 'center',
        marginTop: 25,
    },
    pdf: {
        flex:1,
        width:Dimensions.get('window').width,
        height:Dimensions.get('window').height,
    }
});

export default OpenBGReport;

Однако, после установки response-native-pdf, мой проект перестает работать и возвращает: null is not an object (evaluating 'rnfetchblob.documentdir')

Как лучше всего открыть и отобразитьPDF из URL в реагировать родной?

Спасибо

1 Ответ

1 голос
/ 18 октября 2019

Expo не поддерживает установку собственных модулей, а react-native-pdf - собственный модуль. Возможные решения:

  1. Если вы действительно хотите использовать собственные модули, вы должны использовать react-native-cli или извлечь проект expo. Более подробный ответ вы можете найти в разделе часто задаваемых вопросов о репозитории (https://github.com/wonday/react-native-pdf#faq).

  2. . Вы всегда можете открыть PDF-файлы в браузере телефона, используя Linking API реагирующего натива.

  3. Существует пакет для отображения PDF-файлов в выставочных проектах (https://github.com/xcarpentier/rn-pdf-reader-js). Никогда не использовал пакет, и он также кажется очень схематичным, поскольку он поддерживает только платформу Android, а на iOS вы бынеобходимо использовать WebView для отображения PDF. Кроме того, он не имеет много загрузок на npm, а сам проект устарел.

...