React Native send event - PullRequest
       0

React Native send event

0 голосов
/ 30 апреля 2019

У меня проблема с отправкой событий из модуля Objective C в React Native. Я сделал класс PlayerEvents, и я вызываю его из другого класса следующим образом:

 self.events = [PlayerEvents allocWithZone:nil];
[self.events sendEventWithName:[self formatTypeToString:onBuffering] body:@{@"isBuffering": [NSNumber numberWithBool:YES]}];


#import <Foundation/Foundation.h>
#import <React/RCTBridgeModule.h>
#import <React/RCTEventEmitter.h>

@interface PlayerEvents : RCTEventEmitter <RCTBridgeModule>

@end

@implementation PlayerEvents {
bool hasListeners;
}

RCT_EXPORT_MODULE();

+(id)allocWithZone:(NSZone *)zone {

static PlayerEvents *sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
    sharedInstance = [super allocWithZone:zone];
});
return sharedInstance;
}

+ (BOOL)requiresMainQueueSetup {
    return NO;
}

- (NSArray<NSString *> *)supportedEvents {
    return @[@"onMediaLoaded", @"onPlaying", @"onPause", @"onError", @"onEnded", @"onBuffering", @"onTimeUpdate", @"onStateUpdate"];
 }

 // Will be called when this module's first listener is added.
- (void)startObserving {
     hasListeners = YES;
  }

  // Will be called when this module's last listener is removed, or on dealloc.
- (void)stopObserving {
    hasListeners = NO;
}

- (void)sendEventName:(NSString *)eventName body:(id)body {
    if (hasListeners) {
        [self sendEventWithName:eventName body:body];
}
}
@end

Но я получаю эту ошибку:

Ошибка при отправке события: onBuffering с телом: {isBuffering = 1} Мост не установлен.
Вероятно, это связано с тем, что вы явно синтезировали мост в PlayerEvents, даже если он унаследован от RCTEventEmitter.

Что мне делать?

Спасибо, Клавдиу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...