react native之原生和RN的交互

本文介绍了如何在React Native项目中实现与原生Android的交互,包括启动packager服务、将JS打包到Android项目、传递参数以及接收并处理原生传来的值。通过示例代码展示了如何在Android Activity中传递值给RN组件,并根据接收到的值展示不同页面。适合已具备React Native基础的开发者参考。
摘要由CSDN通过智能技术生成

前言:前端时间随着自己的学习和研究,也写了几篇关于react native的文章,虽然都是比较简的,但是都是根据自己的效果来做的流程,所以还是比较实用的,可以避免很多的坑。这篇react native与原生的交互也是很简单的实现,但是本人也是踩了很多的大坑才跳了出来实现了想要的效果。

啰嗦一下:这篇文章我打算作为自己学习react native的终篇了,以后应该不会再专门写这种怎么学习和使用RN的文章了,因为以后的react native的开发都是语法细节和项目的具体实现了,不适合写博客了。当然,如果里面的某些大坑或者实用的小东西还是会写出来让大家看看吧,也许一不小心就帮助了需要的伙伴呢。

好了,啰嗦结束了,开始今天的干货了。。。

请注意了:本篇文章是基于上篇博客我已经运行起来了我的react native 项目的hello world 效果延续下来的。由于RN的局限性,企业级的项目开发不可能会是只有react native来做,所以基本都是混合开发,我的该篇文章也是朝着混合开发去的。。。

该篇概括:这次学习reactnative 我是从修改js和activity的类的代码开始,然后到最后的打包项目的apk可以运行实现效果流程做的,所以一下内容我也是会按照这个流程来写,主要目的是让大家从感性上知道RN开发的流程性和RN以及到底该怎么去使用RN,细节语法等方面我不会太关注,如果需要请查看相关的其他的文章。


首先:说明一下react native 的混合开发的实现方式。

1.自己建立Android studio项目,然后按照步骤将RN需要的文件用命令给导入到项目里,再配置项目对RN的各种依赖和在build.gradle文件做一些配置。

这个方式需要怎么去做,很多文章都是写的有,可以去看。


2.通过react native init 出来的RN 项目,在里面的android项目下做开发,此时在rn项目的根目录需要的文件都已经自动生成了,同时该Android项目里面各种配置也都自动给配置好了,你是不需要操心这些了。


友情提示:如果是已经有了自己的Androidstudio项目的同学,可以将自己的项目替换掉rn里面的android项目,这也是可以的,然后将原来的rn项目里面自带的android项目的build.gradle文件的配置给复制到你的项目就好了。

我自己就是基于第二种方式来做的RN和原生的混合开发!!!


以下流程是按照我的的习惯和学习的 步骤来写的,如果和你习惯的顺序不一样,可以根据标题自己跳着看就好。

一:简单说一下packager服务的启动。(也就是js的后台服务)

在初始化react native项目的时候,官方文档是让启动了packager服务,然后你修改的js的代码在手机就可以看到效果了。

这个服务的作用就是将你修改的js代码实时的打包到服务器,然后你的app从服务器那里拉去最新的js代码来显示,有利于提高项目开发调试的效率。

这个时候我在考虑,如果项目打包发布了,这个服务怎么办,所以学习了以后才发现该服务不是必须的,因为最终你的apk是要从自己的项目本地加载js代码的,所以该服务是开发提高效率的工具,不是RN开发必须的!!!

既然apk最终是从本地加载的js文件,那么写的那些js文件怎么导入到项目里面的呢??请看下面的内容


二:将js文件打包放入到Android项目。


我一开始迷惑的是随着js文件的增多,都是一个一个的打包到项目里面吗??后来发现不是这样的,只需要把入口js文件打包到项目里面就可以了,这样其他的js文件都是不用管了,项目执行完全没有问题。这个入口js文件就是 index.android.js 文件。(为什么只需导入它就好了࿰

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值