小编Jac*_*ude的帖子

在本机ios中侦听事件

我不能为我的生活得到一个事件,从iOS本机跨桥到适当的原生JS上下文正确发送.在Objective-C方面,我希望有一个模块可以轻松地在整个桥上发送事件.我已经调用了这个类EventEmitter,它的定义如下:

// EventEmitter.h

#import "RCTBridge.h"
#import "RCTEventDispatcher.h"

@interface EventEmitter : NSObject<RCTBridgeModule>

  - (void)emitEvent:(NSString *) eventName withData:(id) eventData;

@end
Run Code Online (Sandbox Code Playgroud)

和实施:

// EventEmitter.m

#import "EventEmitter.h"

@implementation EventEmitter

  RCT_EXPORT_MODULE();

  @synthesize bridge = _bridge;

  - (void)emitEvent:(NSString *) eventName withData:(id) eventData
  {
    NSLog( @"emitting %@ with data %@", eventName, [eventData description] );
    [[_bridge eventDispatcher] sendDeviceEventWithName:eventName body:eventData];
    [[_bridge eventDispatcher] sendAppEventWithName:eventName body:eventData];
  }

@end
Run Code Online (Sandbox Code Playgroud)

我正在使用sendDeviceEvent和sendAppEvent,因为我无法工作.

对事物的JS一边,我在注册我的模块之一(这样我才知道是发出该事件之前会发生的事件订阅)的全局命名空间来接收这些事件.我这样注册:

console.log( 'ADDING EVENT LISTENERS' );
NativeAppEventEmitter.addListener( 'blah', test => console.log( 'TEST1', test ) );
DeviceEventEmitter.addListener( 'blah', test => console.log( 'TEST2', test …
Run Code Online (Sandbox Code Playgroud)

ios react-native

8
推荐指数
2
解决办法
6586
查看次数

标签 统计

ios ×1

react-native ×1