小编Pay*_*Yao的帖子

在 React Native WebView 中加载捆绑的静态资产

我有一个 React Native 项目,我试图将一些预先生成的 HTML、JS 和 CSS 与应用程序捆绑在一起,并让 WebView 使用该react-native-community/react-native-webview库呈现 Web 资产。我可以很好地加载 index.html 文件,但它不会加载其他资产,因为它似乎指向错误的路径。我试过使用,baseUrl但似乎不起作用。

我的 React Native 代码如下所示:

<WebView
  source={{ uri: './assets/index.html' }}
  allowFileAccessFromFileURLs={true}
  allowUniversalAccessFromFileURLs={true}
  originWhitelist={["*"]}
  mixedContentMode='always'
/>
Run Code Online (Sandbox Code Playgroud)

然后作为构建过程的一部分,我的资产目录具有以下结构:

ios
|- assets
  |- index.html
  |- js
    |- main.js
  |- css
    |- main.css
Run Code Online (Sandbox Code Playgroud)

我将此作为 Xcode 中复制捆绑资源步骤的一部分,因此资产目录包含在 ios 应用程序捆绑包中。

index.html 里面是这样的代码:

<html>
  <head>
    <link rel="stylesheet" href="/css/main.css">
  </head>
  <body>
    Hello World!
    <script type="text/javascript" src="/js/main.js"></script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

回到最初的问题,当我运行这个应用程序时,我可以看到“Hello world!” 所以这告诉我 HTML 正在加载,但是 CSS 和 JS 文件没有加载,因为据我所知它正在尝试加载file:///assets/js/main.js而不是相对于应用程序包位置。有什么办法可以让它按需要工作吗?

/js/main.js如果可能的话,我真的非常想避免更改脚本 …

ios react-native react-native-webview

5
推荐指数
1
解决办法
630
查看次数

标签 统计

ios ×1

react-native ×1

react-native-webview ×1