我有下一个发射器的js代码:
DeviceEventEmitter.addListener('keyboardWillShow1', function(e: Event) {
console.log(e);
});
我如何从活动onPause
/ onResume
发出此事件?
答案 0 :(得分:5)
您可以使用此处定义的RCTDeviceEventEmitter.emit
方法从java发送事件:DeviceEventManagerModule.java#L27
要做到这一点,首先需要引用ReactApplicationContext
,然后调用:
reactAppContext
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit("keyboardWillShow1", null);
您可以发送任意数据,而不是“null”,然后将这些数据附加到您在JS端收到的事件。
请参阅此DeviceEventManagerModule.java#L49作为示例 - 这是将后退按钮事件发送给JS的方式。
然后,您可以使用类似的模式从活动onPause
/ onResume
调度事件,假设您引用了ReactApplicationContext
另一种方法是创建自定义模块,该模块可以注册接收生命周期事件。看看它在“计时”模块中是如何完成的:
onHostPause
和onHostResume
方法,并使用上面的代码段从那里调度事件答案 1 :(得分:1)
我相信现在react-native-activity-android模块可以实现这一目标。