RN跳转iOS原生页面

RN调用原生方法,在原生方法中发送本地通知,接收到通知跳转页面,要注意的是RN调用原生方法,会自动开启一个新的线程,并非在主线程,如果直接发送通知,那么push控制器的时候就会有很大的延时,为了保证正常跳转,通知应该在主线程发送

1、遵守RCTBridgeModule协议

2、实现协议方法RCT_EXPORT_MODULE(导出模块的模块名)

这里的即是协议方法的实现,也是OC模块的导出
虽然这里的模块名只是为了暴露给RN,但是还是需要给出有一定意义的名字方便区别,通常建议采用,导出OC模块的类名

3、导出供RN调用的方法

使用宏 RCT_EXPORT_METHOD将要导出的方法包裹即可

//OC方法
- (void)Test
{
}
//导出写成
RCT_EXPORT_METHOD(Test)
{

}

//OC方法带参数
- (void)TestWithParams:(NSDictionary *)params
{

}
//导出写成
RCT_EXPORT_METHOD(TestWithParams:(NSDictionary *)params)
{

}

//OC方法带参数和RN回调
- (void)TestWithParams:(NSDictionary *)params RNCallBack:(RCTResponseSenderBlock)RNCallBack)
{

}
//导出写成
RCT_EXPORT_METHOD(TestWithParams:(NSDictionary *)params RNCallBack:(RCTResponseSenderBlock)RNCallBack)
{
    NSLog(@"参数:%@",params);
    NSArray *events = [[NSArray alloc] initWithObjects:@"张三", @"张三",nil];
    if (RNCallBack)
    {
        RNCallBack(@[[NSNull null], events]);
    }
}

RCTResponseSenderBlock
的声明是
typedef void (^RCTResponseSenderBlock)(NSArray *response);
参数是一个数组,回调时当作参数传给RN,RN接收到后将数组的每一个元素都单独当作一个参数处理。也就是说如果RCTResponseSenderBlock参数传入@[参数1,参数2,...,参数n],如果在RN端接收,形参列表应该是(形参1,形参2,...,形参n)。通常情况下传入两个参数参数1(错误信息,没有错误就是[NSNull null])参数2(其他信息json结构OC字典即可)

4、在RN中调用导出的OC方法

1)导入NativeModules
var { NativeModules } = require('react-native');
2)调用OC方法
格式:
第二步导出OC模块的名.导出方法名(形参列表)

onPress={(error,events) => test1(error,events)}

function test1(error,events){
    NativeModules.导出OC模块的名.TestWithParams(
{name:'张超',age:'30',books:[{name:'java',price:'100'},{name:'java',price:'100'}]},
(error,events) => {console.log(events)});}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文将讲述下在原生和React Native之间的通信方式。方式和逻辑综合了自己的思维方式,主要参考了React ...
    朱_源浩阅读 28,167评论 25 84
  • 学习ReactNative有一段时间了,也加了好多群,看见群里每天那么多人在那儿讨论和学习ReactNative,...
    光无影阅读 7,533评论 28 41
  • 我以前头脑中负面情绪太多,我的能量都用在与负面情绪内耗上了,没有能量用在其它事情上,现在改变方向,把精力用在读牛书...
    新丽学阅读 285评论 0 0
  • 人生 爱情 首先感谢我爱的人,帮助过我的人,你们是我人生的另外一面彩虹。 我书中有这样的一句话:我是我人生中的作者...
    小叶童阅读 274评论 0 0
  • 也许是秋后的孤寂了罢 以前我是最喜爱下雪的 现在看着灰蒙的天,手中传来的凉意,却再也找不到当初的童趣,有的只是对生...
    堕魔阅读 253评论 0 2