最近项目需要React Native 和原生的交互,当需要用到跳转的时候,官方文档写的也是云里雾里,网上的博客也是你吵我我抄你,乱糟糟一片.最终关于RN跳转原生自己使用的方法,亲证有效.具体原理好好看一下就能理解,直接贴代码了
1.首先在原生项目创建一个Module类,
.m文件中将这个module导出,并将给rn调用的方法导出,这块详细的自行查阅rn和原生的通信吧,还是比较简单的
@interface SmartConfigModule()
@end
@implementation RCTConvert (AKPWifiConfigureProgress)
@end
@implementation SmartConfigModule
RCT_EXPORT_MODULE();
//model,dms,sens
RCT_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原生.有问题欢迎提问.

本文介绍了一种React Native应用跳转至iOS原生页面的具体实现方法,通过创建Module类并在AppDelegate中设置UINavigationController来实现页面跳转。
3684

被折叠的 条评论
为什么被折叠?



