我正在 iOS 应用程序中做一些异步操作。它是由 javascript 触发的。完成后(在应用程序中的某个地方分开),我想让 javascript 知道。我当前的解决方案是继承自 的本机模块RCTEventEmitter,它具有以下方法:
@interface MyEventEmitter : RCTEventEmitter
// ...
end
@implementation
- (void)giveSomethingToJS:(NSString *)something {
[self sendEventWithName:@"SOME_NAME" body:something];
}
@end
Run Code Online (Sandbox Code Playgroud)
然后,当我的异步工作完成后,我调用这个方法:
MyEventEmitter *emitter = [[MyEventEmitter alloc] init];
[emitter giveSomethingToJS:@{}];
Run Code Online (Sandbox Code Playgroud)
很明显,emitter.bridge是 nil 并且应用程序因为 assert 崩溃了bridge != nil。那么我应该如何获得桥梁并让*emitter(实例)知道。或者如何在桥初始化的情况下获得正确的实例?
提前致谢!