外部HTML资产未在生产版本中由React Native捆绑以供Webview使用

var*_*nvs 12 android webview ios react-native

我正在使用React Native构建一个Android应用程序.它有一个webview,可以在本地读取HTML文件.

这是我用来渲染webview的代码片段.

<WebView ref="webview"
      source={require('./helloworld.html')}
      javaScriptEnabled style={styles.webView} />
Run Code Online (Sandbox Code Playgroud)

这在开发构建期间很有效.HTML文件加载在webview上并呈现良好.

但它不适用于Android发布/生产版本.webview为空,如果我使用chrome:// inspect进行检查,则webview为空并且不加载HTML文件.

根据我的理解,React Native无法在Android生产构建期间将helloworld.html捆绑为资产.我注意到它在iOS上运行良好.

知道怎么解决吗?

var*_*nvs 9

根据这里的讨论https://github.com/facebook/react-native/issues/6004,这是一个已知的缺陷.资产不是为Android生产版本捆绑的,但在开发版本中可以正常工作.

解决方案是手动将资产存储在Android资源文件夹中,然后使用加载资源

<WebView
    source={{ uri: 'file:///android_asset/helloworld.html' }}
    startInLoadingState={true} />
Run Code Online (Sandbox Code Playgroud)