RN和Android 通信实操

作者: 易之108 | 来源:发表于2018-06-07 10:57 被阅读35次

    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);
    }
    

    就可以完成调用。

    相关文章

      网友评论

        本文标题:RN和Android 通信实操

        本文链接:https://www.haomeiwen.com/subject/cawwsftx.html