我想使用事件在本机ios / android和我的本机应用程序之间进行通信。
我看到两种方法:DeviceEventEmitter和NativeAppEventEmitter,它们看起来完全相同。
它们之间的区别是什么?我为什么要选一个呢?
答案 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代码需要选择正确的 要接收的事件的发射器。
E.g。
DeviceEventEmitter
答案 1 :(得分:2)
不推荐DeviceEventEmitter
和NativeAppEventEmitter
,您应该使用NativeEventEmitter
。