ReactNative 自定义Android原生模块的两种形式
来源:互联网 发布:linux系统分区详解 编辑:程序博客网 时间:2024/05/16 17:22
ReactNative 自定义Android原生模块的两种形式
1.原生View模块
继承SimpleViewManager<返回View类型>
必须重写getName()
和createViewInstance(ThemedReactContext context)
两个方法,在createViewInstance
中返回原生控件
通过@ReactProp
注解添加原生属性
通过重写getExportedCustomDirectEventTypeConstants()
方法进行回调,例如:
@Overridepublic Map getExportedCustomDirectEventTypeConstants() { return MapBuilder.of( NavigationStateChangeEvent.EVENT_NAME, MapBuilder.of("registrationName", "onNavigationStateChange"), "onWebScroll123", MapBuilder.of("registrationName", "onWebScroll") );}
将原生模块中的onWebScroll123方法映射为 JS模块的onWebScroll属性,调用方法如下:
假设getName返回值为 “MyView”
<MyView
onWebScroll={()=>{}}>
2.原生Class模块
继承ReactContextBaseJavaModule
必须重写getName()
和构造函数
可以认为这个事一个工具类,提供一些RN没有的原生方法
通过@ReactMethod
注解添加原生方法,在JS中通过
import {View,NativeModules,NativeAppEventEmitter} from 'react-native';const RNVolume = NativeModules.原生中的getName返回值;RNVolume.注解对应方法名 调用对应方法
3.在原生还可以通过以下方法向Js发送信息
reactContext .getJSModule(RCTNativeAppEventEmitter.class) .emit(eventName, params); //eventName:String JS中通过eventName接收 //params:WritableMap 需要传递的参数
在Js通过接收(eventName=”onVolumeChange”)
NativeAppEventEmitter.addListener('onVolumeChange', () => {})
阅读全文
0 0
- ReactNative 自定义Android原生模块的两种形式
- ReactNative调用Android原生模块
- ReactNative调用Android原生模块
- ReactNative调用Android原生模块
- ReactNative创建原生模块
- ReactNative(嵌入到android)调用android原生组件与原生模块(比如某个方法)
- Android -- 播放视频的两种形式
- android图片截取的两种形式
- ReactNative调用Android原生方法
- android原生项目整合ReactNative
- android 自定义控件的几种形式
- android动画的两种形式,总结得还行
- Android开发之onClick事件的两种主要形式
- 【Android进阶篇】Fragment的两种加载形式
- Android中退出软件的两种形式
- android ScrollView判断滑动到底部的两种形式
- UIActivityIndicatorView的两种形式
- UIActivityIndicatorView的两种形式
- MySQL高级设计之四、索引
- c#中sqlite数据库相关的一些操作总结
- Java概念的通俗理解
- Dom事件02
- 移动端/pc字体两边对齐
- ReactNative 自定义Android原生模块的两种形式
- WebService 入门详解
- 剑指Offer-14
- 四种第三方登录(附源码)
- 通过JitPack方式发布你的库
- SystemBarTint的使用(设置半透明状态栏)
- 【Android实战】----基于Retrofit实现多图片/文件、图文上传
- Maven远程部署,兼容tomcat7/8
- Android Dialog 系统样式讲解及透明背景