使用React Native for Android从捆绑包加载JS/CSS

使用React Native for Android从捆绑包加载JS/CSS,android,react-native,Android,React Native,我见过许多从捆绑包中加载JS/CSS的解决方案,其中包含一个React原生应用程序,目标是iOSlike,而不是Android 我的webview代码如下所示: <WebView source={{html: html, baseUrl: `file:///android_asset/web`}} /> const html = ` <html> <head> <link rel="stylesheet" type="text/css"

我见过许多从捆绑包中加载JS/CSS的解决方案,其中包含一个React原生应用程序,目标是iOSlike,而不是Android

我的webview代码如下所示:

<WebView
  source={{html: html, baseUrl: `file:///android_asset/web`}}
/>
const html = `
<html>
  <head>
    <link rel="stylesheet" type="text/css" href="styles.css" />
  </head>
  <body>
    <p class="someText">Foo</p>
  </body>
</html>`
app
  -> assets
  -> web
    -> styles.css
我的项目目录如下所示:

<WebView
  source={{html: html, baseUrl: `file:///android_asset/web`}}
/>
const html = `
<html>
  <head>
    <link rel="stylesheet" type="text/css" href="styles.css" />
  </head>
  <body>
    <p class="someText">Foo</p>
  </body>
</html>`
app
  -> assets
  -> web
    -> styles.css

如果有人对此有解决方案,那就太棒了。

将styles.css放在以下路径中:

/android/app/src/main/assets

然后,将
的baseURL设置为以下值:

<WebView source={{html: html, baseUrl: 'file:///android_asset/'}} />


附言:每次更改样式时,您都必须执行
react native run android

我的代码几乎正常工作,除了
中的
href
应该以
/web
@NaotoIda作为前缀之外,我认为问题是因为您的基本URL中缺少尾随
/
,它应该是'file:///android_asset/web/'. 一旦您解决了这个问题,就不需要在
href
中以“/web”作为前缀。