前言
有时候可能由于业务的需求需要实现某些功能,但因为React Native上可能还没有相应的组件或第三方库提供使用,这时候可以通过访问原生平台上的API接口,去实现一些React Native上还没有的功能。
链接原生模块步骤
打开项目文件夹/android/app/java/
目录下的包新增两个类。
(1)一是MyNativeModule
类(名字自定义)并继承ReactContextBaseJavaModule
,用来存放需要在React Native中调用的方法。如下图所示:
(2)一是MyReactPackage
类(名字自定义)并实现接口ReactPackage
包管理器,并把在第一步中创建的类加到原生模块NativeModule
列表里。如下图所示:
(3)把在第二步中创建的包管理器添加到ReactPackage
列表里(指在getPackage
方法里面)
(4)在React Native中调用原生模块。
MyNativeModule.java
代码如下:
1 |
|
MyReactPackage.java代码如下:
1 |
|
MainApplication.java
代码如下:
1 |
|
MainActivity.java代码如下:
1 |
|
接着需要在RN中import
原生模块
最后在相应的位置调用即可:
1 |
|
总结&理清流程
- (1)在配置文件
AndroidManifest.xml
中,android:name=".MainApplication”
,则MainApplication.java
会执行。- (2)在
MainApplication.java
中,有我们创建的包管理器对象。程序加入MyReactPackage.java
中。- (3)在
MyReactPackage.java
中,将我们自己创建的模块加入了原生模块列表中,程序进入MyNativeModule.java
中。- (4)在
MyNativeModule.java
中,有我们需要被复用的原生方法rnCallNative( )
。