gpt4 book ai didi

javascript - 如何在 React Native 中将事件从 iOS 发送到 javascript

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:56:33 27 4
gpt4 key购买 nike

我正在 iOS 应用程序中执行异步操作。它由 javascript 触发。完成后(在应用程序中的某个地方分开),我想让 javascript 知道。我目前的解决方案是继承自 RCTEventEmitter 的原生模块,它有以下方法:

@interface MyEventEmitter : RCTEventEmitter
// ...
end
@implementation
- (void)giveSomethingToJS:(NSString *)something {
[self sendEventWithName:@"SOME_NAME" body:something];
}
@end

然后,当我的异步作业完成后,我调用这个方法:

MyEventEmitter *emitter = [[MyEventEmitter alloc] init];
[emitter giveSomethingToJS:@{}];

显然,emitter.bridge 为 nil,应用程序因断言 bridge != nil 而崩溃。那么我应该如何获得桥接器并让 *emitter(实例)知道。或者我怎样才能得到正确的桥初始化实例?

提前致谢!

最佳答案

问题在于,在 React-Native iOS SDK 中,RCTEventEmitter 子类不应由您初始化。 React-Native SDK 实际上会处理 RCTEventEmitter 的初始化。

正如 Arthur 指出的那样,使用 NSNotificationCenter 与您的 RCTEventEmitter 进行通信是一个很好的策略。如果您需要指向这些事件发射器的指针,您还可以创建自定义单例类并在初始化时向其注册 RCTEventEmitter。

关于javascript - 如何在 React Native 中将事件从 iOS 发送到 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38470897/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com