React Native Android原生方向进阶一

虽然说react native的设计初衷是为了敏捷开发,write once,run anywhere,但是还是开放了原生接入这一高级功能,而原生也是一位这个开发方向一个绕不过去的坎,今天先跑了一下流程,总结一下先

1、react-native init mengft_module
初始化一个react native项目,取名mengft_module,初尝0.55.1版本

这里写图片描述

2、android studio中打开项目,新建一下module(既然是进阶,咱们就不在原来的项目上修改了,搞一个单独的module包吧)

这里写图片描述

3、这时settings.geadle和build.gradle都会同步到这个新增的moudle,但是现在同步项目是会有报错的

依次这么解决

问题一:
问题一

解决方案
修改主项目下的AndroidMainifest.xml文件

<uses-sdk tools:overrideLibrary="com.facebook.react"/>

这里写图片描述

问题二:
这里写图片描述

react-native-toast这个module没有和主项目建立依赖,请核实你的build.gradle和settings.gradle文件,注意拼写和引入方式,只可能是这两个文件出问题

问题三:
这里写图片描述
类似于问题一,依然是解决merge的冲突
修改新建的module下的AndroidMainifest.xml文件

<uses-sdk tools:overrideLibrary="com.facebook.react"/>

这里写图片描述

这时候报错已经解决了

接下来,我们在module中添加能和js进行通讯的原生代码来测试功能,案例我们就参考react native中文网的把,原生Toast的调用,代码我就不贴了,没啥参考价值

你会发现在新建ToastReactMoudle.java的时候,你想继承于ReactContextBaseJavaModule, 但是这个资源就是索引不到,在module的build.gradle文件中加一行

compile 'com.facebook.react:react-native:+'

接着,我们尝试着把现在的module和现在的项目在代码逻辑上再一步分离,将module文件移到如下位置
这里写图片描述

这样代码结构就非常合理了
但是,我们还需要做一件事,修改settings.build文件,因为module文件的位置发生了变化

include ':react-native-toast'
project(':react-native-toast').projectDir = new File(rootProject.projectDir, '../module/react-native-toast/android')
<TouchableWithoutFeedback onPress={() => NativeModules.Toast.show('Android弹出框')}>
   <View>
     <Text>Android弹出框</Text>
   </View>
</TouchableWithoutFeedback>

这样就完事了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值