| 版权声明:本文为博主原创文章,未经博主允许不得转载。
一、简介
随着项目功能的多样化,复杂程度逐渐的增大,就会出现ReactNative官方API中有些组件无法满足产品需求,那么我们就需要自己来定义我们产品特殊需求的组件。
组件又包含功能性组件和视图组件;功能性组件中大部分都是用户通过点击之类的触发JS端调用Native组件功能,触发类型与操作方式相对简单,因此JS与Native之间的通信方式也相对简单,方式也多样化,可满足不同的时间和空间上的需求;而自定义UI组件中,JS端和Native之间的通信相对来讲就复杂的多,比如用户会将图片放大缩小,甚至会绘画,使用场景相对于功能组件的使用场景复杂的多。
下面先让我们看看功能模块的封装。
二、封装Native功能组件
1. 创建CustomNativeModule子类,继承ReactContextBaseJavaModule父类
public class CustomNativeModule extends ReactContextBaseJavaModule {
private static final String REACT_CLASS = "CustomNativeModule";
private ReactApplicationContext context;
public CustomNativeModule(ReactApplicationContext reactContext) {
super(reactContext);
context = reactContext;
}
@Override
public String getName() {
return REACT_CLASS;
}
}
2. 定义Native API,供JS端直接调用
public class CustomNativeModule