如何在Android/iOS原生项目中复用React Native库的原生功能?
复用React Native库中Android/iOS原生代码的方案
Android 端实现方式
直接作为Android Library依赖引入
- 在原生Android项目的
settings.gradle中添加RN库Android模块的路径:
替换include ':your-rn-library-android' project(':your-rn-library-android').projectDir = new File('../path-to-your-rn-library/android')your-rn-library-android为实际模块名,../path-to-your-rn-library/android为RN库Android目录的绝对/相对路径。 - 在原生项目
app/build.gradle的dependencies块中添加依赖:implementation project(':your-rn-library-android') - 同步Gradle后,即可在原生代码中直接调用库内的BLE相关类和方法。如果原RN库代码依赖React Native核心类(如
ReactContext),可选择在原生项目中初始化必要的RN环境,或修改原库代码剥离RN依赖(仅保留纯原生BLE逻辑)。
- 在原生Android项目的
发布到本地Maven仓库(多项目复用推荐)
在RN库的Android目录下执行:./gradlew publishToMavenLocal然后在原生项目的
build.gradle中配置本地Maven仓库并引入依赖:repositories { mavenLocal() } dependencies { implementation 'com.yourgroup:your-rn-library:version' }
iOS 端实现方式
通过CocoaPods引入
- 在原生iOS项目的
Podfile中添加:
替换pod 'YourRNLibrary', :path => '../path-to-your-rn-library/ios'YourRNLibrary为RN库Podspec中定义的名称,../path-to-your-rn-library/ios为RN库iOS目录的路径。 - 执行
pod install,安装完成后即可在原生代码中import库的头文件,调用BLE功能。 - 若原RN库代码依赖React Native API,可选择初始化RN环境,或修改原库代码移除RN相关绑定逻辑,仅保留纯原生BLE实现。
- 在原生iOS项目的
直接引入静态库/Framework
- 打开RN库的iOS项目,编译生成Framework或静态库。
- 将生成的库文件及相关头文件添加到原生iOS项目中,在Build Phases的
Link Binary With Libraries中确保依赖的系统框架(如CoreBluetooth)已添加。 - 在代码中import头文件即可使用。
注意事项
- 清理原RN库中与RN桥接相关的代码(如
ReactMethod注解、RN上下文依赖),只保留纯原生BLE逻辑,减少不必要的依赖。 - 确保原生项目的编译版本、SDK版本与RN库的原生代码兼容,避免编译报错。
内容的提问来源于stack exchange,提问作者Adithya.K
相关产品推荐
相关产品推荐

