React Native 集成到原生项目iOS

2017-11-03  本文已影响0人  Wang_237a

一、准备工作

1. React Native 开发基础环境

这个可以直接参考我写的第二篇文章React Native 环境搭建和创建项目(Mac)。如果已经按上篇文章操作过,或者说已经在Mac平台已经成功运行过React Native应用,那肯定是已经有了开发基础环境,可以直接忽略这一步。

1) 安装Node.js

方式一:

安装 nvm(安装向导在这里)。然后运行命令行如下:

nvm install node && nvm alias default node

这将会默认安装最新版本的Node.js并且设置好命令行的环境变量,这样你可以输入node命令来启动Node.js环境。nvm使你可以可以同时安装多个版本的Node.js,并且在这些版本之间轻松切换。

方式二:

先安装Homebrew,再利用Homebrew安装Node.js,运行命令行如下:

//安装Home-brew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

//安装Node.js

brew install node

2) 安装React Native的命令行工具(react-native-cli)

npm install -g react-native-cli

2. 安装CocoaPods

本文只写使用CocoaPods安装React Native的方式,比较支持使用,也比较简单直接。

若依旧不想使用CocoaPods,想直接集成的朋友可以参考下面两篇文章:

1)【iOS&Android】RN学习3——集成进现有原生项目

2)reactnative集成到原生ios项目文中的手动集成react-native

如果之前已经安装并使用过CocoaPods,请忽略这一步(相信只要是iOS开发,一定大多数都接触过了哈)。

若没有安装,则运行命令如下:

gem install  cocoa pods

//权限不够则运行下面一句

sudo gem install cocoapods

二、集成React Native

1. 安装React Native

1)创建ReactComponent文件夹和配置文件

在项目中建一个名为ReactComponent的文件夹, 用于存放我们react-native的相关文件, 再创建一个package.json文件, 用于初始化react-native.(文件夹名字自定义哈)

文件目录结构如下:


创建package.json文件,文件内容如下:

、、、

{

"name": "AwesomeProject",

"version": "0.0.1",

"private": true,

"scripts": {

"start": "node node_modules/react-native/local-cli/cli.js start",

"test": "jest"

},

"dependencies": {

"react": "16.0.0-beta.5",

"react-native": "0.49.5"

},

"devDependencies": {

"babel-jest": "21.2.0",

"babel-preset-react-native": "4.0.0",

"jest": "21.2.1",

"react-test-renderer": "16.0.0-beta.5"

},

"jest": {

"preset": "react-native"

}

}

不过60s估计等到花都谢了,设置成5~10s比较合理,于是赶紧去设置超时时间:

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

// 设置超时时间

[manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];

manager.requestSerializer.timeoutInterval = 8.f;

[manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];

模拟超时环境

怎么个模拟超时环境? 很简单,把项目的地址改一下就行,例如:http://xxx.com/api改为http://xxx1.com/api就行了,运行项目看一下超时设置,果然生效了。

ps:在MacBook和真机上模拟超时环境是可以的,不过在Mac mini上模拟不成功,提示为:

Error: Error Domain=NSURLErrorDomain Code=-1003 "未能找到使用指定主机名的服务器。"

上一篇下一篇

猜你喜欢

热点阅读