随手记一下,iOS向RN发送数据时用的旧方法。xcode 提示已经过期,但是还可以调用。在混合界面时。调用
[self.bridge.eventDispatcher sendDeviceEventWithName:@"video_progress_json" body:@{@"video_progress_json":json}];
或者在new出来的对象方法中调用
[self.bridge.eventDispatcher sendDeviceEventWithName:@"video_progress_json" body:@{@"video_progress_json":json}];
不报错,但是无效。
打断点观察,是bridge为null,那就找一个bridge.网上查找资料发现
RCTRootView *rootView = [[RCTRootView alloc]initWithBridge:self.bridge moduleName:moduleName initialProperties:dict];
有这个initWithBridge方法。接着查找到
self.bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
moduleProvider:nil
launchOptions:nil];。
就获取到来bridge。
原先获取到rootView是通过
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:moduleName
initialProperties:dict
launchOptions:nil];
后面改动一下。引用这个bridge。成功发送数据到RN。
解决来问题。之前在网上没有查找到相关解决方案就记录一下。原生和RN的通信有很多例子。就不说了。
有问题的朋友可以联系QQ:570932838. 共同学习交流。