RN交互iOS

RN与原生iOS交互有传值 通知 第一种RN传值iOS

原生代码
RCT_EXPORT_MODULE() 导出模块
RCT_EXPORT_METHOD(RNOpenVC:(NSString *)msg){} 导出函数名以及参数
import{NativeModules}
const xxx = NativeModules.'模块名称';
xx.RNOpenVC(('xxxx'));
复制代码

第二种

通知
原生代码
原生类文件继承:RCTEventEmitter<RCTBridgeModule>
RCT_EXPORT_MODULE(); //导出模块
//添加通知名称
- (NSArray<NSString *> *)supportedEvents {
  return @[@"locationCenterEvent",
           @"decompileAddressEvent",
           @"onClickDetailPage",
           @"onPressMarkDetailinfo",
           @"onTagFuncationIndex",
           @"onPressPrivateChat",
           @"onPressChildPageDetailinfo",
           @"chlidPagelocation",
           @"onPressHeadPersonalPageClick",
           @"onPressMapSearchClick"]; //这里返回的将是你要发送的消息名的数组。
}
//添加监听通知方法(注意: 函数名字不可随意改变)
- (void)startObserving{
    //点击进入搜索
    [[NSNotificationCenter defaultCenter] addObserver:self
    selector:@selector(onPressMapSearchClick:)
    name:@"onPressMapSearchClick"
    object:nil];
}
//实现通知方法
- (void)onPressMapSearchClick:(NSNotification *)notify{
    [self sendEventWithName:@"onPressMapSearchClick"  body:@{ @"code": @"1",
    @"result": notify.object, }];
}
//停止监听通知(移除通知)
- (void)stopObserving{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

RN代码
复制代码

import { NativeModules, NativeEventEmitter,} //调用通知模块 const tagEventEmitter = NativeModules.tagEventEmitter; const tagEventEmitters = new NativeEventEmitter(tagEventEmitter);

监听方法
 //搜索跳转
  this.onPressMapSearchClick = tagEventEmitters.addListener('onPressMapSearchClick', (obj) => {
    this.props.navigation.navigate('Search');
  });
  
  //移除通知
 componentWillUnmount() {
    this.onPressMapSearchClick.remove();
}
以上便是项目种使用到的RN与原生交互方式,其他交互方式敬请期待。。。。。复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值