使用發送通知的做法:
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();