React-Native与原生之间的交互简介
2017-08-09 18:16
393 查看
JavaScript调用原生步骤:
1.创建原生java类
a、Js通过React.NativeModules.${getName()}的返回值访问本模块,例如:NativeModules.ToastModuleb、被Js调用的函数必须有@ReactMethod,为反射提供条件
public class ToastModule extends ReactContextBaseJavaModule { private final String COMPONENT_NAME = "ToastModule"; public ToastModule(ReactApplicationContext reactContext) { super(reactContext); } @Override public String getName() { return COMPONENT_NAME; } @ReactMethod public void showToast(String s){ Toast.makeText(getReactApplicationContext(), s + "ToastModule.showToast(String s)", Toast.LENGTH_SHORT).show(); } }
2.注册模块的创建与添加
2-1、(如果存在注册模块类则直接进入2-2)创建注册模块类,实现ReactPackage接口2-2、 修改注册模块,例如:
public class MReactPackage implements ReactPackage { @Override public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) { List<NativeModule> modules = new ArrayList<>(); modules.add(new ToastModule(reactContext)); return modules; } @Override public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) { return Collections.emptyList(); } }
3.在MainApplication.java添加2中的注册包类的实例
protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList( new MainReactPackage(), new MReactPackage() ); }
4.Js中调用:
import { NativeModules }from 'react-native'; ...... var ToastModule = NativeModules.ToastModule; ToastModule.showToast("hello")
官方文档:ReactNative原生交互(android)
相关文章推荐
- 第七章、 ReactNative与原生之间的接口交互
- iOS原生和React-Native之间的交互2
- iOS原生和React-Native之间的交互1
- ios原生和react-native各种交互的示例代码
- react native与原生的交互
- 关于iOS原生和react-native的交互
- ReactNative中js与原生如何交互
- React-Native 与原生的3种交互通信(Android)
- React Native与原生的图片交互问题
- react native之原生和RN的交互
- React Native和iOS原生方法交互
- React Native 原生与JS之间事件绑定注册 作用在于原生可以直接调用JS的方法
- React-Native 与原生的3种交互通信(Android)
- React Native与Android原生通信交互详情
- React Native与Android原生通信交互详情
- ReactNative基础(七)js代码与原生代码进行交互、打包APK
- ReactNative跟Android原生模块是如何进行数据交互实例
- React Native 与原生之间的通信(iOS)
- React-Native 与原生的3种交互通信(Android)
- React native和原生之间的通信