ReactNative跳转到iOS原生界面

来源:互联网 发布:淘宝混沌卡组 编辑:程序博客网 时间:2024/06/05 03:16

最近项目需要React Native 和原生的交互,当需要用到跳转的时候,官方文档写的也是云里雾里,网上的博客也是你吵我我抄你,乱糟糟一片.最终关于RN跳转原生自己使用的方法,亲证有效.具体原理好好看一下就能理解,直接贴代码了


1.首先在原生项目创建一个Module类,

.m文件中将这个module导出,并将给rn调用的方法导出,这块详细的自行查阅rn和原生的通信吧,还是比较简单的

@interface SmartConfigModule()@end@implementation RCTConvert (AKPWifiConfigureProgress)@end@implementation SmartConfigModuleRCT_EXPORT_MODULE();//model,dms,sensRCT_EXPORT_METHOD(startWifiConfig:(NSString *)model dms:(NSString *)dms sens:(NSString *)sens) {}

model,dms,sens是rn传给原生的参数,可以不加


2.在AppDelegate类中给rootViewController包上一层UINavigationController

3.在第一步的RCT_EXPORT_METHOD 方法里添加

if([[UIApplication sharedApplication].keyWindow.rootViewController isKindOfClass:[UINavigationController class]]) {      UINavigationController *vc = [UIApplication sharedApplication].keyWindow.rootViewController;            AddDeviceViewController *addDeviceVC = [[AddDeviceViewController alloc]init];      addDeviceVC.model = model;      addDeviceVC.dms = dms;      addDeviceVC.sens = sens;      [vc pushViewController:addDeviceVC animated:YES];    }else {      UINavigationController *vc = [UIApplication sharedApplication].keyWindow.rootViewController;      AddDeviceViewController *addDeviceVC = [[AddDeviceViewController alloc]init];      addDeviceVC.model = model;      addDeviceVC.dms = dms;      addDeviceVC.sens = sens;      [vc presentViewController:addDeviceVC animated:YES completion:nil];    }

到此完成rn跳转iOS原生.有问题欢迎提问.





原创粉丝点击