React Native 集成到原生項目iOS

一、準備工作

1. React Native 開發(fā)基礎環(huán)境

這個可以直接參考我寫的第二篇文章React Native 環(huán)境搭建和創(chuàng)建項目(Mac)。如果已經(jīng)按上篇文章操作過,或者說已經(jīng)在Mac平臺已經(jīng)成功運行過React Native應用,那肯定是已經(jīng)有了開發(fā)基礎環(huán)境,可以直接忽略這一步。

1) 安裝Node.js

方式一:

安裝 nvm(安裝向?qū)г?a target="_blank" rel="nofollow">這里)。然后運行命令行如下:

nvm install node && nvm alias default node

這將會默認安裝最新版本的Node.js并且設置好命令行的環(huán)境變量,這樣你可以輸入node命令來啟動Node.js環(huán)境。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——集成進現(xiàn)有原生項目

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

如果之前已經(jīng)安裝并使用過CocoaPods,請忽略這一步(相信只要是iOS開發(fā),一定大多數(shù)都接觸過了哈)。

若沒有安裝,則運行命令如下:

gem install? cocoa pods

//權(quán)限不夠則運行下面一句

sudo gem install cocoapods

二、集成React Native

1. 安裝React Native

1)創(chuàng)建ReactComponent文件夾和配置文件

在項目中建一個名為ReactComponent的文件夾, 用于存放我們react-native的相關(guān)文件, 再創(chuàng)建一個package.json文件, 用于初始化react-native.(文件夾名字自定義哈)

文件目錄結(jié)構(gòu)如下:


創(chuàng)建package.json文件,文件內(nèi)容如下:

、、、

{

"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"];

模擬超時環(huán)境

怎么個模擬超時環(huán)境? 很簡單,把項目的地址改一下就行,例如:http://xxx.com/api改為http://xxx1.com/api就行了,運行項目看一下超時設置,果然生效了。

ps:在MacBook和真機上模擬超時環(huán)境是可以的,不過在Mac mini上模擬不成功,提示為:

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容