RN调用Android 方法
第一步
在android中创建类(ActuatorReactJavaModule,class名随意),继承ReactContextBaseJavaModule 实现继承方法。在类中实现一个方法(Native_AsyncTest,方法名随意),用@ReactMethod 修饰。此方法就是通过RN调用的方法。
第二步
在android中创建第二个类(ActuatorReactPackage,class 名随意),继承ReactPackage 实现继承方法。在createNativeModules 方法中进行如下修改
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
List<NativeModule> modules=new ArrayList<>();
modules.add(new ActuatorReactJavaModule(reactContext));
return modules;
}
第三步
在MainApplication 类中的 getPackages 方法返回第二个类。
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new ActuatorReactPackage()
);
}
第四步
在RN中使用如下调用
NativeModules.ActuatorReactJavaModule.Native_AsyncTest();
就可以调用android中的方法了。
android 调用 RN方法
第一步
在RN中的componentWillMount 方法中,使用DeviceEventEmitter 添加监听,代码如下。
componentWillMount(){
DeviceEventEmitter.addListener('EventName_Async', this.onEvent_Async);
}
onEvent_Async = (e) => {
alert(JSON.stringify(e));
}
第二步
在android 中
触发监听,代码如下
public void Native_AsyncTest()
{
// 发送事件
WritableMap et= Arguments.createMap();
et.putInt("key1", 11);
et.putInt("key2", 22);
sendEvent(myContext,"EventName_Async",et);
}
就可以完成调用。