-
项目中FJGRNRouterManager是用于与iOS 的交互统一文件配置
.h文件:导入头文件,实现RCTBridgeModule协议
#import <Foundation/Foundation.h>
#import <React/React-umbrella.h>
@interface FJGRNRouterManager : NSObject<RCTBridgeModule>
@end
.m文件:RCT_EXPORT_METHOD(方法名字)
RN通过方法名字(loading)以及传递出来的参数(touch)到原生中调用原生的方法
#import "FJGRNRouterManager.h"
#import "FJGRNRoute.h"
@implementation FJGRNRouterManager
#pragma mark --- react native 回调函数
RCT_EXPORT_METHOD(loading:(BOOL)touch){
[FJGRNRoute shareInstance].currentViewController loading:touch];
}
@end
RN中调用原生的方法:
// 导入头文件
import {
NativeModules
} from 'react-native';
// 获取原生类
var RNVC = NativeModules.FJGRNRouterManager;
// 调用原生
RNVC.loading(false)
-
通知进行交互
iOS端:
[self.bridge.eventDispatcher sendAppEventWithName:LOGIN_NOTIFICATION body:@{@"id":@([ZYUserModel shareUserModel].id)}];
RN端:
NativeAppEventEmitter.addListener('loginNotification', (userInfo) => {
RNVC.Cookie = userInfo.Cookie
})