iOS原生界面与RN界面互调及传值

本文详细介绍了iOS原生界面与React Native(RN)界面之间的交互和数据传递,包括RN如何跳转到原生界面并传值,原生界面如何回调给RN,以及原生页面向RN页面的双向传值策略,重点关注了不同场景下的传值方法和通信机制。
摘要由CSDN通过智能技术生成

3. iOS原生与RN互调及传值

iOS原生项目(Objective-C)集成React Native(0.57.3版本)图文教程–(1)基本环境

iOS原生项目(Objective-C)集成React Native(0.57.3版本)图文教程–(2)集成过程

一个RNDemo(React Native 0.57.3 + ES6)实现(包含RN与原生相互跳转和通信)

iOS原生界面与RN界面互调及传值

3.1 RN跳转原生界面

iOS端:

  1. 导入#import <React/RCTBridgeModule.h>.
  2. 需要创建一个类遵守RCTBridgeModule协议.
  3. RCT_EXPORT_MODULE() 写调用的方法.
RCT_EXPORT_MODULE();

RCT_EXPORT_METHOD(openNativeVC) {
   
    dispatch_async(dispatch_get_main_queue(), ^{
   
        AppDelegate *delegate = (AppDelegate *)([UIApplication sharedApplication].delegate);
        UINavigationController *rootNav = delegate.navigationController;
        ZYViewController *nativeVC = [[ZYViewController alloc] init];
        [rootNav pushViewController:nativeVC animated:YES];
    });
}

RN端:

  1. 引入NativeModules模块.
  2. 创建nativeModule变量.
  3. RN方法中调用对应的函数
var nativeModule = NativeModules.OpenNativeModule;
//跳转到原生界面
jumpToNative() {
   
    nativeModule.openNativeVC()
}

3.2 RN跳转原生界面并传值

所传参数可以是已知的数据类型,不过最好用NSDictionaryNSArray来传,其实原理就是RN那边传递个json过来,在RNjson也是个对象

  1. 原生界面
RCT_EXPORT_METHOD(openNativeVCWithParams:(NSDictionary *)params) {
   
    dispatch_async(dispatch_get_main_queue(), ^{
   
        AppDelegate *delegate = (AppDelegate *)([UIApplication sharedApplication].delegate);
        UINavigationController *rootNav =
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值