使用发送通知的做法:
iOS端
继承rn类 实现代理
实现的是照片选择功能,导入发送通知的包
#import "RCTEventDispatcher.h"
定义
@synthesize bridge = _bridge;
导出类 没有参数默认是类名
RCT_EXPORT_MODULE();
导出方法
RCT_EXPORT_METHOD(openNativePhoto:(NSString *)name callBack:(RCTResponseSenderBlock)callback)
{
//选择相册省略
//callback可以回传值回去 但是相册在这里取不到照片 需要实现代理方法 所以这是一个测试方法
// callback(@[[NSNull null],@"dasauto"]);
}
//选择相册的代理方法
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary*)info{
//省略。。。
//发送通知
[self sendEventWithName:@"EventReminder" body:@{@"name": [info[UIImagePickerControllerReferenceURL] absoluteString]}];
}
//通知名称 有多少写多少 取值的时候按照这个名称取值(理解为字典)
- (NSArray*)supportedEvents
{
return @[@"EventReminder"];//有几个就写几个
}
js端
import{NativeEventEmitter}from'react-native';
constmyNativeEvt =newNativeEventEmitter(HWRCTLinkController);//创建自定义事件接口
varsubscription = myNativeEvt.addListener(
'EventReminder',
(reminder) =>console.log(reminder.name)
)
// 千万不要忘记忘记取消订阅, 通常在componentWillUnmount函数中实现。
subscription.remove();