RN調(diào)用Android 方法
第一步
在android中創(chuàng)建類(ActuatorReactJavaModule利虫,class名隨意)洒疚,繼承ReactContextBaseJavaModule 實(shí)現(xiàn)繼承方法。在類中實(shí)現(xiàn)一個(gè)方法(Native_AsyncTest尤蒿,方法名隨意),用@ReactMethod 修飾。此方法就是通過(guò)RN調(diào)用的方法红选。
第二步
在android中創(chuàng)建第二個(gè)類(ActuatorReactPackage,class 名隨意)姆另,繼承ReactPackage 實(shí)現(xiàn)繼承方法喇肋。在createNativeModules 方法中進(jìn)行如下修改
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
List<NativeModule> modules=new ArrayList<>();
modules.add(new ActuatorReactJavaModule(reactContext));
return modules;
}
第三步
在MainApplication 類中的 getPackages 方法返回第二個(gè)類。
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new ActuatorReactPackage()
);
}
第四步
在RN中使用如下調(diào)用
NativeModules.ActuatorReactJavaModule.Native_AsyncTest();
就可以調(diào)用android中的方法了迹辐。
android 調(diào)用 RN方法
第一步
在RN中的componentWillMount 方法中蝶防,使用DeviceEventEmitter 添加監(jiān)聽(tīng),代碼如下。
componentWillMount(){
DeviceEventEmitter.addListener('EventName_Async', this.onEvent_Async);
}
onEvent_Async = (e) => {
alert(JSON.stringify(e));
}
第二步
在android 中
觸發(fā)監(jiān)聽(tīng)明吩,代碼如下
public void Native_AsyncTest()
{
// 發(fā)送事件
WritableMap et= Arguments.createMap();
et.putInt("key1", 11);
et.putInt("key2", 22);
sendEvent(myContext,"EventName_Async",et);
}
就可以完成調(diào)用间学。