reactNative webview怎么加载一个带有css,js等静态资源引用的h5项目?

1.问题描述

项目中会遇到我们需要嵌套前端页面进入rn工程,rn的webview引入时会遇到一个问题,按照我们平时的引入方法发现,如果是单页面的引入不会有问题,但是如果是一个带有js,css,img这样的静态引入资源时,我们会发现不是和我们想象的一样,他会加载不进来,显示的仅仅是html这个文件,那如何才能把他的静态引入正确导入我们的包里且正确显示在app呢?今天就带着大家解决这个困惑,轻松搞定静态引入h5到我们的webview里.

2.react-native-webview

首先我们需要rn的webview,

npm install react-native-webview
react-native link react-native-webview

小编这里就不详细说面这个webview了,rn的webview安装配置api请参考这里

3.rn工程根目录新建bundle文件夹

在RN项目根目录中创建static.bundle文件夹
在这里插入图片描述
这个bundle文件夹里放置前端的所有静态文件
在这里插入图片描述

4.ios部分

xcode植入静态项目

上面的步骤全部完结后,请按照下面图文操作
在这里插入图片描述
在xcode工程目录右键选择add files to …
之后选择
在这里插入图片描述
把之前建好的static.bundle选择按照上图添加到工程目录里.
ios配置完毕,非常简单

5.android部分

assets放置

android部分还是老样子把static,bundle文件全部拖到assets目录, 至于android
的assets目录小编这里就不细细讲解了,相信每个android开发者都不陌生

buildGradle 添加如下
android { 
    ... 
    sourceSets { 
        main {
        	asset.srcDirs = ['src/main/assets', '../../static.bundle']
   	 	}
    }
}

6.rn webview书写如下

ios

	<WebView
        source={{uri:"static.bundle/index.html"}}
        originWhitelist={['*']}
       />

android

	<WebView
          source={{uri:"file:///android_asset/static.bundle/index.html"}}
          originWhitelist={['*']}
         />                    

到这里就可以run一下你的项目试试了,希望我的分享能帮助更多的人,求支持🙏🙏🙏

联系方式:2316744840@qq.com
欢迎大家查阅我的个人作品: lbopush-react-native(为开发这提供厂商推送接入api)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值