ReactNative Webview加载本地html异常问题

在iOS发布release版本时,React Native Webview加载本地HTML可能出现异常,主要是由于HTML引用的本地JS链接未被正确打包。解决方法包括理解RN打包机制,将assets链接添加到iOS工程中,确保HTML及其引用资源在同一目录结构下,并通过Xcode打包。遵循此方法,可以成功打包并避免加载异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要解决ios发布release版本时,react native webview加载本地html显示异常问题。


产生此问题得条件

ios加载本地的html,且html内部包含引用外部的js链接(注:链接指向本地),但是,如果你html所有js代码都写在了html上,那就不会下面这些问题。

  • eg:我的index.html文件是这样的:

html的body结构

原因

ios在打包时,react native会把所有非js的文件当作资源来处理,并不会一起打包到index.bundle.js和index.bundle.meta文件中,而你的html会被打包到assets目录下的相对路径中,通过解压ipa可以看到文件结构,如图:。
这个时候你只会看到,解压出来的目录中,html文件内加载的相对路径下的资源并没有被打包进来。这是因为react native认识的只有html这个资源,并不认识html内部引用的其他资源链接。


解决办法

如果你没有ios的开发经验,这个时候你可能会一脸茫然(比如我),不过你只需要了解react-native bundle的打包机制即可,而本人是通过下面这个链接,找到了解决办法,推荐一下:https://segmentfault.com/a/1190000006668359

  • 思路:
  • 1、把assets链接加到你的ios工程中,具体怎么加,参考上面链接文中提到的,把assets文件夹加到工程的目录中,加入后是这样的,如下图:
  • ios目录下的assets
  • 2、如果你没有加的话,xcode打包后自己也会加进去,但是xcode并不会把你工程目录下的assets自己加进去,而是react native在打包时自动生成的。eg:如下图是ipa解压出来后的目录结构:
    这里写图片描述
    而步骤1就是为了能把自己手动添加进assets目录的文件,在xcode编译的时候一并打包进ipa;

  • 3、根据你在react native工程放置的html位置,在assets生成相应的目录结构,并放置文件,如下图是我根目录后的文件路径结构:
    这里写图片描述

  • 4、xcode archive导出ipa,把ipa解压查看目录结构,如图:
  • ipa解压后的图
    成功打包,工程和运行正常了。

致谢
我的朋友(blue),协助我处理ios的问题,本人对ios原生并不是非常懂,但他给予了我很大的帮助。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值