-
項目中FJGRNRouterManager是用于與iOS 的交互統(tǒng)一文件配置
.h文件:導(dǎo)入頭文件,實現(xiàn)RCTBridgeModule協(xié)議
#import <Foundation/Foundation.h>
#import <React/React-umbrella.h>
@interface FJGRNRouterManager : NSObject<RCTBridgeModule>
@end
.m文件:RCT_EXPORT_METHOD(方法名字)
RN通過方法名字(loading)以及傳遞出來的參數(shù)(touch)到原生中調(diào)用原生的方法
#import "FJGRNRouterManager.h"
#import "FJGRNRoute.h"
@implementation FJGRNRouterManager
#pragma mark --- react native 回調(diào)函數(shù)
RCT_EXPORT_METHOD(loading:(BOOL)touch){
[FJGRNRoute shareInstance].currentViewController loading:touch];
}
@end
RN中調(diào)用原生的方法:
// 導(dǎo)入頭文件
import {
NativeModules
} from 'react-native';
// 獲取原生類
var RNVC = NativeModules.FJGRNRouterManager;
// 調(diào)用原生
RNVC.loading(false)
-
通知進行交互
iOS端:
[self.bridge.eventDispatcher sendAppEventWithName:LOGIN_NOTIFICATION body:@{@"id":@([ZYUserModel shareUserModel].id)}];
RN端:
NativeAppEventEmitter.addListener('loginNotification', (userInfo) => {
RNVC.Cookie = userInfo.Cookie
})