通過ReactNative 跳轉(zhuǎn)iOS頁面 (RN和iOS通信)

一、無回調(diào)通信
1.第一步 在iOS工程里面創(chuàng)建一個對象RNToNativeManager 并遵循RCTBridgeModule協(xié)議(需要引入#import <React/RCTBridgeModule.h> #import <React/RCTLog.h>頭文件)

#import <Foundation/Foundation.h>
#import <React/RCTBridgeModule.h>
#import <React/RCTLog.h>

@interface RNToNativeManaer : NSObject<RCTBridgeModule>

@end

第二步 在.m文件需要包含RCT_EXPORT_MODULE()宏,而且要在RCT_EXPORT_METHOD這個宏里面跑出來供javaScript調(diào)用的方法()(注意如果要在這個方法里面操作view要回到主線程)

#import "RNToNativeManaer.h"

@implementation RNToNativeManaer
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(addEvent:(NSString *)name location:(NSString *)location){
    RCTLogInfo(@"creat an event%@ at %@",name,location);
    [[NSNotificationCenter defaultCenter]postNotificationName:@"push" object:self];
   
}
@end

第三步 在js端調(diào)用native跑出來的這個方法(這里要引入NativeModules)

var RNToNativeManaer = NativeModules.RNToNativeManaer;

class App extends Component{
    // 構(gòu)造
    constructor(props) {
        super(props);
        // 初始狀態(tài)
        this.state = {
            w:100,
            h:100,
        };
        this.handlePress=this.handlePress.bind(this);
    }

    handlePress(){
        RNToNativeManaer.addEvent(' Party','street');

    }
    render(){
        return(
            <View style={styles.container}>

            <TouchableOpacity onPress={this.handlePress}><Text >123</Text></TouchableOpacity>
            </View>

    );
    }
}

在這里要注意: Javascript方法名
導出到Javascript的方法名是Objective-C的方法名的第一個部分铅搓。React Native還定義了一個RCT_REMAP_METHOD()宏哭当,它可以指定Javascript方法名迹辐。當許多方法的第一部分相同的時候用它來避免在Javascript端的名字沖突呵萨。且橋接到Javascript的方法返回值類型必須是void撒犀。
二某宪、回調(diào)函數(shù)通信
回調(diào)函數(shù)RCTResponseSenderBlock,它可以把返回值傳給javaScript.
native跑出來的方法如下

RCT_EXPORT_METHOD(findEvents:(RCTResponseSenderBlock)callBack){

    NSArray *array =@[@"1",@"2"];
    callBack(@[[NSNull null],array]);
}

reactNative端代碼
把上面的handlePress函數(shù)內(nèi)容替換如下就可以了

handlePress(){
        // RNToNativeManaer.addEvent(' Party','street');
        RNToNativeManaer.findEvents((error,events)=>{
            if (error){
                console.log(error);
            }else {
                console.log(events);
                this.setState({
                    event:events,
                });
            }

        });
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末仿村,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子兴喂,更是在濱河造成了極大的恐慌蔼囊,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衣迷,死亡現(xiàn)場離奇詭異畏鼓,居然都是意外死亡,警方通過查閱死者的電腦和手機壶谒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門云矫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人汗菜,你說我怎么就攤上這事让禀√羯纾” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵堆缘,是天一觀的道長滔灶。 經(jīng)常有香客問我,道長吼肥,這世上最難降的妖魔是什么录平? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮缀皱,結(jié)果婚禮上斗这,老公的妹妹穿的比我還像新娘。我一直安慰自己啤斗,他們只是感情好表箭,可當我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著钮莲,像睡著了一般免钻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上崔拥,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天极舔,我揣著相機與錄音,去河邊找鬼链瓦。 笑死拆魏,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的慈俯。 我是一名探鬼主播渤刃,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼贴膘!你這毒婦竟也來了卖子?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤步鉴,失蹤者是張志新(化名)和其女友劉穎揪胃,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體氛琢,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡喊递,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了阳似。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片骚勘。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出俏讹,到底是詐尸還是另有隱情当宴,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布泽疆,位于F島的核電站户矢,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏殉疼。R本人自食惡果不足惜梯浪,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瓢娜。 院中可真熱鬧挂洛,春花似錦、人聲如沸眠砾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽褒颈。三九已至柒巫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谷丸,已是汗流浹背吻育。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留淤井,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓摊趾,卻偏偏與公主長得像币狠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子砾层,可洞房花燭夜當晚...
    茶點故事閱讀 45,630評論 2 359

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

  • 本文將講述下在原生和React Native之間的通信方式漩绵。方式和邏輯綜合了自己的思維方式,主要參考了React ...
    朱_源浩閱讀 27,964評論 25 84
  • React Native 是最近非掣嘏冢火的一個話題止吐,介紹如何利用 React Native 進行開發(fā)的文章和書籍多如...
    零度_不結(jié)冰閱讀 681評論 0 1
  • ? React Native(以下簡稱RN)的目標是用基于react的JavaScript寫代碼,在iOS/A...
    Iceguest閱讀 3,595評論 0 10
  • 早禪 禪是自留田 你隨意種侨糟, 但得看天氣收碍扔。 午禪 我以為你是神, 而你是意志薄弱的人秕重。 夜禪 佛無一日清靜不同, 人...
    鋤風少年閱讀 188評論 1 2
  • 情不知所起,一往而深。 ――《醉玲瓏》 “在下二拐,柸中服鹅,公儀裴。敢問姑娘芳名百新?” “永安企软,卿酒酒》雇” ――《華胥引》...
    漠漠水田飛白鷺閱讀 1,721評論 4 16