导出IOS原生组件的事件到RN端的步骤。
1、在IOS组件的头文件声明一个事件属性。
2、在RN组件桥接类里面导出这个事件属性。
3、在IOS原生端通过定义的事件属性发送事件到RN端。
4、在RN端封装IOS原生组件事件。
1、在IOS组件的头文件声明一个事件属性
TestReactNativeView.h
//
// TestReactNativeView.h
// NativeCommunicationDemo
//
// Created by chenlw on 2019/4/10.
// Copyright © 2019 Facebook. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "React/RCTComponent.h"
NS_ASSUME_NONNULL_BEGIN
@interface TestReactNativeView : UIView
// type操作类型
@property(nonatomic,weak) NSString * type;
//如果使用assign会导致线程锁死,使用weak弱引用就没有问题
//@property(nonatomic,assign) UITextView *textView;
@property(nonatomic,weak) UITextView *textView;
// 声明一个事件属性,导出给RN端使用
@property(nonatomic, copy) RCTBubblingEventBlock onFaceDetection;
@end
NS_ASSUME_NONNULL_END
2、在RN组件桥接类导出这个事件属性
TestReactNativeViewManager.m
//
// TestReactNativeViewManager.m
// NativeCommunicationDemo
//
// Created by chenlw on 2019/4/10.
// Copyright © 2019 Facebook. All rights reserved.
//
#import "TestReactNativeViewManager.h"
#import "TestReactNativeView.h"
@implementation TestReactNativeViewManager
//导出桥接宏标记
RCT_EXPORT_MODULE()
//导出RN组件的属性
RCT_EXPORT_VIEW_PROPERTY(type, NSString)
//导出RN组件的事件
RCT