1. RN调用原生方法的流程图:
RN与Android之间是通过ReactApplication接口建立连接的,ReactApplication提供了React Native运行环境,ReactApplication接口里面实现了getReactNativeHost() 方法,让原生代码可以启动Rect Native程序,通过getReactNativeHost() 方法获取到ReactNativeHost的配置信息(包括主模块名称【从服务器上获取的bundle名称】,模块列表等),通过getPackage() 获取到暴露的原生模块。
创建供RN通信的原生模块,继承ReactContextBaseJavaModal接口,ReactPackage通过createNativeModules将模块暴露,RN通过 NativeModules.模块名称.方法名称,就可以与原生通信。
简单来说:创建一个类,继承ReactContextBaseJavaModule类,然后添加到ReacPackage中,RN通过 NativeModules.模块名称.方法名称调用。