ReactNative與iOS的混編

ReactNative與iOS的混編

通訊

ReactNative與iOS的通訊
這里頭很詳細

嵌入

iOS原生調(diào)用嵌入ReactNative

iOS原生調(diào)用嵌入ReactNative(English)

1. cd到項目的根目錄下

cd到項目的根目錄下

2. 添加依賴包-->到了這里,有兩個選擇(推薦第二個)

選擇 ① :(官方)

(1)根據(jù)下圖哟旗,創(chuàng)建package.json,這個是包含著你要抓取的依賴包的版本等信息,相當(dāng)于請求參數(shù),去請求一個react_native對應(yīng)的資源包

添加package.json

(2) 在終端運行 (此時終端還在項目的根目錄上)

     $ npm install
選擇② :

在你的舊項目或者在任意路徑上運行:

    react-native init #任意空項目名

創(chuàng)建新的空項目坐搔,把項目中的 node_modules文件夾整個復(fù)制到你的項目的根目錄中

ps:

無論哪種方法宰闰,目的都是拿到依賴包node_modules

集成cocoaPod

集成cocoapod钢拧,不會請百度或者簡書搜索(iOS開發(fā)者的基本技能,不廢話忱反,看到這里不會的話铺遂,在此斷點淘讥,請調(diào)用了相關(guān)知識再回調(diào)回來)。
在podfile中泻拦,增加以下代碼

pod 'React', :path => './node_modules/react-native', :subspecs => [ 'Core',
'RCTImage',
'RCTNetwork',
'RCTText',
'RCTWebSocket',
# 添加其他你想在工程中使用的依賴毙芜。
]
end

注意:path對應(yīng)著react-native的路徑,有的人不喜歡把node_modules放在根目錄争拐,則對應(yīng)自己需要調(diào)整path的路徑內(nèi)容

react-native代碼準(zhǔn)備

1) 創(chuàng)建一個文件夾來保存你的React代碼腋粥,然后創(chuàng)建一個index.ios.js文件:
$ mkdir ReactComponent
$ touch ReactComponent/index.ios.js
2)導(dǎo)入相關(guān)靜態(tài)了庫,添加相關(guān)frameworks文件:
按步驟添加
在react-native注冊輸出

在index.ios.js中編寫:


在index.ios.js中編寫
在原生項目中導(dǎo)入
導(dǎo)入reactNative的內(nèi)容
程序的啟動

一旦使用了rn架曹,則程序的啟動會有變化:

  1. 設(shè)置服務(wù)器權(quán)限:


    打開權(quán)限
  2. 終端命令進入進入項目根目錄隘冲,執(zhí)行
 $ react-native start 
  1. 服務(wù)器打開后,直接在xcode上command+R 運行程序

ps:
如果build錯誤:

_refreshControl報錯

解決方法:

添加上面代碼
運行結(jié)果
原生頁
RN頁面

ReactNative嵌入iOS原生

1音瓷、創(chuàng)建原生模塊对嚼,實現(xiàn)“RCTBridgeModule”協(xié)議

#import <Foundation/Foundation.h>
#import "RCTBridgeModule.h"

@interface NativeLogin : NSObject <RCTBridgeModule>

@end

2夹抗、在原生的類中實現(xiàn)

#import "NativeLogin.h"

@implementation NativeLogin

//導(dǎo)出模塊
RCT_EXPORT_MODULE();    //此處不添加參數(shù)即默認(rèn)為這個OC類的名字

//導(dǎo)出方法绳慎,橋接到j(luò)s的方法返回值類型必須是void
RCT_EXPORT_METHOD(pushToLoginWithTitle:(NSString *)name)
{
  NSLog(@"loginTitle:%@",name);
 //在此處可以跳轉(zhuǎn)你想跳轉(zhuǎn)的頁面
UINavigationController *controller = (UINavigationController*)[[[UIApplication sharedApplication] keyWindow] rootViewController];
  UIViewController *loginVC = [[UIViewController alloc] init];
  login.title = name;
  [controller pushViewController:loginVC animated:YES];
}

@end

3、js文件中調(diào)用

//創(chuàng)建原生模塊實例
var loginModule = require('react-native').NativeModules.NativeLogin;
//方法調(diào)用
loginModule. pushToLoginWithTitle('Login');
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末漠烧,一起剝皮案震驚了整個濱河市杏愤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌已脓,老刑警劉巖珊楼,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異度液,居然都是意外死亡厕宗,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進店門堕担,熙熙樓的掌柜王于貴愁眉苦臉地迎上來已慢,“玉大人,你說我怎么就攤上這事霹购∮踊荩” “怎么了?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長膜楷。 經(jīng)常有香客問我旭咽,道長,這世上最難降的妖魔是什么赌厅? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任穷绵,我火速辦了婚禮,結(jié)果婚禮上特愿,老公的妹妹穿的比我還像新娘请垛。我一直安慰自己,他們只是感情好洽议,可當(dāng)我...
    茶點故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布宗收。 她就那樣靜靜地躺著,像睡著了一般亚兄。 火紅的嫁衣襯著肌膚如雪混稽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天审胚,我揣著相機與錄音匈勋,去河邊找鬼。 笑死膳叨,一個胖子當(dāng)著我的面吹牛洽洁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播菲嘴,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼饿自,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了龄坪?” 一聲冷哼從身側(cè)響起昭雌,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎健田,沒想到半個月后烛卧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡妓局,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年总放,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片好爬。...
    茶點故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡局雄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抵拘,到底是詐尸還是另有隱情哎榴,我是刑警寧澤型豁,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站尚蝌,受9級特大地震影響迎变,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜飘言,卻給世界環(huán)境...
    茶點故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一衣形、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧姿鸿,春花似錦谆吴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至热某,卻和暖如春腻菇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背昔馋。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工筹吐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人秘遏。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓丘薛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親邦危。 傳聞我的和親對象是個殘疾皇子洋侨,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,974評論 2 355

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,160評論 25 707
  • 在許多的項目開發(fā)中,直接用ReactNative的項目不會很多铡俐,大部分都是原生的代碼中凰兑,需要嵌入一兩個界面妥粟,運用R...
    ZoeZhouZ閱讀 4,635評論 10 21
  • React Native優(yōu)秀博客审丘,以及優(yōu)秀的Github庫列表(很多英文資料源自于[awesome-react-n...
    董董董董董董董董董大笨蛋閱讀 10,627評論 4 162
  • 人啊,沒有辦法不去成長勾给,長大后的你慢慢會明白一切多么不容易滩报,能做到的只能慢慢變強大,要有一個堅強的心播急。請做一個勇敢者
    岳鵬云閱讀 196評論 0 0
  • 以前的古代 夜晚是寧靜的 沒有白日的喧囂 只有燈火的燃燒 如今的現(xiàn)世 夜晚也不平靜 匆匆脓钾,疾行,鳴笛桩警,吵鬧 不復(fù)往...
    阿卡迪亞凱閱讀 363評論 0 0