DeviceEventEmitter与NativeAppEventEmitter

时间:2016-04-18 11:16:27

标签: react-native deviceeventemitter

我想使用事件在本机ios / android和我的本机应用程序之间进行通信。

我看到两种方法:DeviceEventEmitter和NativeAppEventEmitter,它们看起来完全相同。

它们之间的区别是什么?我为什么要选一个呢?

2 个答案:

答案 0 :(得分:3)

我发现在开发需要将事件从Java / Obj-C发送到JavaScript的跨平台原生扩展时,我需要同时使用它们。

在iOS上,你可以像这样向JS发送事件:

0

..您使用[self.bridge.eventDispatcher sendAppEventWithName:@"myProgressEvent" body:@{ @"progress": @( (float)loaded / (float)total ) }]; 在JS中选择。

在Java中,您使用以下命令向JS发送事件:

NativeAppEventEmitter

..您使用WritableMap map = Arguments.createMap(); map.putDouble("progress", progress); getReactApplicationContext().getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class) .emit("myProgressEvent", map);

在JS中选择

它并不理想,因为您的JS代码需要选择正确的 要接收的事件的发射器。

E.g。

DeviceEventEmitter

答案 1 :(得分:2)

不推荐DeviceEventEmitterNativeAppEventEmitter,您应该使用NativeEventEmitter