现有项目集成 ReactNative 框架的方法

官方的文档写了一大堆,其实主要是针对 RN 开发人员的,如果不开发 RN 或者 RN 模块有其他人开发的话,其实只要几行代码来集成 RN 的 Maven 库就可以了。

1、准备 Maven 库

事实上,RN 的 Maven 库本质上就是一个本地文件夹,内部有 aar、pom 等文件,aar 是核心库,pom 是依赖,因此可以从 RN 开发人员那边复制这个 Maven 库。位于 node_modules\react-native\android 目录。将这个 android 目录复制到工程项目同级目录下,并重命名为 maven 以区分项目目录和 maven 目录。


2、修改项目主 build.gradle 文件


3、修改项目模块 build.gradle 文件


然后就大功告成可以写 ReactNativeActivity 了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React Native 是一款基于 JavaScript 的框架,可以帮助我们快速开发 iOS 和 Android 应用程序。如果你想将 React Native 集成进你的现有 iOS 项目中,可以按照以下步骤进行操作: 1. 创建一个新的 React Native 项目 首先,你需要在你的电脑上安装好 React Native 开发环境。接着,在终端中输入以下命令创建一个新的 React Native 项目: ``` npx react-native init MyReactNativeApp ``` 2. 将 React Native 项目中的 jsCodeLocation 文件复制到 iOS 项目中 在 React Native 项目的 ios 目录下,你会找到一个名为 MyReactNativeApp.xcodeproj 的 Xcode 项目文件。打开该文件,然后将 jsCodeLocation 文件夹中的 main.jsbundle 文件和 index.js 文件复制到你的 iOS 项目中。 3. 在 iOS 项目中添加 React Native 依赖库 在你的 iOS 项目中,你需要添加以下依赖库: - libRCTWebSocket.a - libfishhook.a - libcxxreact.a - libReact.a 你可以通过 CocoaPods 或手动添加库的方式来完成此操作。如果你使用 CocoaPods,只需要在 Podfile 中添加以下代码: ``` pod 'React', :path => '../node_modules/react-native', :subspecs => [ 'Core', 'CxxBridge', 'DevSupport', 'RCTText', 'RCTNetwork', 'RCTWebSocket', 'RCTAnimation', 'RCTImage', 'RCTLinkingIOS', 'RCTSettings', 'RCTVibration', 'RCTActionSheet', 'RCTBlob', 'RCTGeolocation', 'RCTPushNotification', 'RCTStatusBar', 'RCTCameraRoll' ] ``` 然后在终端中运行以下命令: ``` pod install ``` 如果你手动添加库,可以在 Build Phases 中添加以下库: - libRCTWebSocket.a - libfishhook.a - libcxxreact.a - libReact.a 4. 在 iOS 项目中添加 React Native 模块 如果你想在 iOS 项目中使用 React Native 模块,你需要将其添加到你的 iOS 项目中。具体操作方式可以参考 React Native 官方文档中的说明。 5. jsCodeLocation 生成方式总结 在 React Native 项目中,你可以通过以下两种方式生成 jsCodeLocation: - 手动生成 在终端中输入以下命令: ``` react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios ``` 该命令会生成一个名为 main.jsbundle 的文件,该文件就是 jsCodeLocation。 - 自动更新 在 Xcode 项目中,你可以使用 RCTBundleURLProvider 类来动态生成 jsCodeLocation。该类会根据当前环境生成不同的 jsCodeLocation,例如在开发环境中,它会生成一个指向本地服务器的 jsCodeLocation。在生产环境中,它会生成一个指向发布的 jsCodeLocation。在使用 RCTBundleURLProvider 类之前,你需要先在 AppDelegate.m 文件中导入该类: ``` #import <React/RCTBundleURLProvider.h> ``` 然后,在 didFinishLaunchingWithOptions 方法中添加以下代码: ``` NSURL *jsCodeLocation; #ifdef DEBUG jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; #else jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; #endif RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"MyReactNativeApp" initialProperties:nil launchOptions:launchOptions]; ``` 以上代码会根据当前环境生成不同的 jsCodeLocation。在开发环境中,它会生成一个指向本地服务器的 jsCodeLocation。在生产环境中,它会生成一个指向发布的 jsCodeLocation。 以上就是将 React Native 集成现有 iOS 项目中的过程记录。如果你想了解更多关于 React Native 的知识,可以参考 React Native 官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值