React Native通过cocoaPods集成到现有工程详解

一、集成便利

ReactNative对外提供一个View
CocoaPods支持ReactNative

二、集成需要环境

CocoaPods - gem install cocoapods
Node.js
- brew install node

三、用CocosPod安装React

项目的根目录下 Podfile 文件:

platform:ios,‘7.0‘
use_frameworks!
target ‘kugou’ do
pod ‘React‘
pod ‘React/RCTText‘
pod ‘React/RCTWebSocket‘
end

结果:

四、工程配置

引入SDK:


User HeaderSearch
Paths:

五、创建ReactNative页面

根 JavaScript 文件index.ios.js:

‘use strict‘;
var React = require(‘react-native‘);
var {
  Text,
  View
} = React;
var styles = React.StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: ‘red‘
  }
});
class SimpleApp extends React.Component {
  render() {
    return (
      <View style={styles.container}>
        <Text>111122222222222 哈哈哈哈哈哈 application.</Text>
      </View>
    )
  }
}
React.AppRegistry.registerComponent(‘SimpleApp‘, () => SimpleApp);

最后一行的第一个‘SimpleApp’是模块名,后面会用到

六、引入React的View

#import "RCTRootView.h”

NSURL *jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle"];
        // For production use, this `NSURL` could instead point to a pre-bundled file on disk:
        //
        //   NSURL *jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
        //
        // To generate that file, run the curl command and add the output to your main Xcode build target:
        //
        //   curl http://localhost:8081/index.ios.bundle -o main.jsbundle
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
                                                            moduleName: @"kugou"
                                                     initialProperties:nil
                                                         launchOptions:nil];
[self addSubview:rootView];

七、启动开发服务器

因为是用自己的机器既做服务器有做客户端,所以也把程序根目录作为服务端服务的根目录;

终端cd进入工程根目录,在根目录创建目录ReactComponent作为运行服务的执行目录,输入命令:(JS_DIR=`pwd`/ReactComponent; cd Pods/React; npm run start -- --root $JS_DIR)

八、编译和运行

Command+R

修改js代码,直接Command+R就可以刷新页面了

九、版本发布

//OPTION 1 服务器上加载
NSURL *jsCodeLocation = [ NSURL URLWithString:@"http://localhost:8081/
index.ios.bundle?platform=ios&dev=true"];
?
//OPTION 2 本地加载
 NSURL *jsCodeLocation = [[ NSBundle mainBundle] URLForResource:@“testRN" withExtension:@“jsbundle”];?
?
RCTRootView *rootView = [[ RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:
@“AwesomeProject" initialProperties:nil launchOptions:launchOptions]; 

十、集成后的性能指标

Size: 增加0.8M
Load Time:首次加载5s

十一、小技巧

提前初始化RCTRootView
多个jsbundle共用一个RCTRootView

时间: 2024-10-13 17:38:41

React Native通过cocoaPods集成到现有工程详解的相关文章

【React Native开发】React Native控件之Touchable*系列组件详解(18)

转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/50630984 本文出自:[江清清的博客] (一)前言 [好消息]个人网站已经上线运行,后面博客以及技术干货等精彩文章会同步更新,请大家关注收藏:http://www.lcode.org 今天我们一起来看一下Touchable*系列组件的使用详解,该系列组件包括四种分别为:TouchableHighlight,TouchableNativeFeedback,Touch

「Spring Boot架构」集成Mybatis-Plus的实例详解

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 特性 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑: 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作: 强大的 CRUD 操作:内置通用 Mapper.通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求: 支持 Lambda 形式调用:通过

Zend Studio集成Xdebug断点调试详解

转自:http://www.softown.cn/post/115.html Xdebug是PHP开发中两个常用的断点调试工具之一(另一个为Zend Debugger). 现在,我们在Zend Studio中集成PHP的Xdebug模块,从而在Zend Studio中实现断点调试功能. 1.下载.安装.配置Xdebug 关于如何在PHP中安装.配置Xdebug模块,请直接参考文章PHP安装配置Xdebug模块详解. 2.Xdebug远程连接配置 想要在Zend Studio中使用Xdebug,就

Maven快速创建SpringMVC web工程详解(2)

一.前言 在上一篇文章中,讲解了如何用maven创建web工程,并简单搭建基于Spring框架的MVC工程,但是配置较为简单,很多配置尚未涉及:本文对 Spring MVC工程的更多详细配置.使用,进行进一步的讲解,搭建一个完整.可用的Spring web工程框架. 二.配置文件目录放置修改 根据maven工程提倡的标准目录结构,我们将/WEB-INF/目录下的Spring配置文件移到 /src/main/resources/ 目录下:而因为Spring默认加载的配置文件目录为/WEB-INF/

.Net工程详解及项目版本管理

前言 写这篇文章的目地是为了让更多的小伙伴对VS生成的工程有一个清晰的认识.在开发过程中,为了赶进度,并不是每个人都有学习的时间. 但如果上层项目管理人员对这些工程目录不熟悉的话,把VS编译的中间文件也提库到SVN,那么其它同事在提代码时,就会发现有N多文件被修改了,其实有些目录及文件是没必要进行版本控制的. 说说为什么最近会写一些C#客户端的文章(包括WinForm和WPF),我所在公司游戏项目的需求,需要一些小工具和游戏微端,我们是在windows下开发,自然就会想到微软大哥的客户端技术,自

cocos2d-x 创建工程详解

我们的编写的第一个程序一般习惯上都命名为HelloWorld,从它开始再学习其他的内容.下面介绍的第一个Cocos2d-x游戏我们也命名为HelloWorld. 创建工程 在Cocos2d-x早期版本中,创建工程是通过安装在Visual Studio中的工程模板而创建的,而目前创建工程Cocos2d-x是通过Cocos2d-x提供的命令工具cocos实现的,cocos位于<Cocos2d-x安装目录>\tools\cocos2d-console\bin下.我们能够通过DOS等终端进入bin目录

转:Eclipse中创建Maven版的Web工程(详解)

一.搭建步骤 ?首先创建一个Maven的Project,如下图: ?点击Next,勾选 Create a simple project ?点击Next,注意Packing要选择war,因为我们创建的是一个Web工程 ?由于packing是war包,那么下面也就多出了webapp的目录 ?由上图可知,这其实是一个Maven的目录结构,对于Maven来说这是一个Web工程,但对于Eclipse来说这是一个Java工程.Web工程目录至少得有一个WebContent以及WebContent下有web.

Intellij IDEA 将工程转换成maven工程 详解

1> 右键工程,点击 Add Framework Support 2> 选中 Maven,再点击 OK 3> 工程根目录自动生成 pom.xml 文件,这样 工程就支持 Maven 版权声明:本文为博主原创文章,未经博主允许不得转载. http://blog.csdn.net/chenshun123/article/details/53844078 原文地址:https://www.cnblogs.com/hfultrastrong/p/8584312.html

Spring boot集成Nacos-配置中心详解

该文档是基于spring cloud版本进行开发. Nacos持久化可以参考:https://mp.weixin.qq.com/s/6khhRU46J2kFJKUBuDyTGQ 项目集成 依赖 最新版本可以参考https://github.com/spring-cloud-incubator/spring-cloud-alibaba/releases <dependency> <groupId>org.springframework.cloud</groupId> &l