如何在React-Native Webview中运行React JS构建?

时间:2019-05-14 12:40:35

标签: reactjs react-native

我创建了完整的离线ReactJS Web应用程序,并希望使用React-Native从Web View的android应用程序中运行它。

我按照以下步骤进行操作:
1.我创建了一个已编译的ReactJS Web应用程序,它使用以下命令获取了build

npm run build
  1. 然后,我创建了react-native项目,并使用以下架构放置了build文件夹 react-native with build folder

  2. 我用以下内容更新了App.js

import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View, WebView} from 'react-native';
import {roscon} from "./build/index.html";

type Props = {};
export default class App extends Component<Props> {
  render() {
    return (
      <View style={{height: 300, width: 300,overflow:'hidden' }}>
          <WebView
            source={{uri: roscon}}
            scalesPageToFit={true}
            domStorageEnabled={true}
            javaScriptEnabled={true}
            startInLoadingState={true}
          />
      </View>
    );
  }
}

运行此代码后,我希望它能运行ReactJS Web应用程序,而不是白屏。

能否请您说明引起问题的原因以及如何使我的ReactJS Web App在react-native上运行?

注意:我能够使用npm命令运行生成的build文件夹

serve -s build

但是我仍然不知道如何将其作为WebView移植到react-native项目中

2 个答案:

答案 0 :(得分:0)

尝试正确要求html文件,并以这种方式将其传递到源prop:

 <WebView
    source={require('./build/index.html')}
 />

答案 1 :(得分:0)

经过研究和测试,我找到了解决方案。 我发现的主要问题是已编译的build文件夹呈现为static html。而且它需要server才能提供页面。

因此,我遵循此link来获取build项目以使其开始运行 然后,将其与nodejs Android Project Samples集成在一起,以使我的build文件夹作为Webview在android中运行。

注意:我也尝试过react-snapshotreact-snap,但结果却不令人满意。