我有一段带有next事件的JavaScript代码:
DeviceEventEmitter.addListener('keyboardWillShow1', function(e: Event) {
console.log(e);
});
我应该如何在Activity的onPause/onResume方法中发送此事件?
我有一段带有next事件的JavaScript代码:
DeviceEventEmitter.addListener('keyboardWillShow1', function(e: Event) {
console.log(e);
});
RCTDeviceEventEmitter.emit
方法从Java发送事件:DeviceEventManagerModule.java#L27
要实现这一点,首先需要引用 ReactApplicationContext
,然后调用:reactAppContext
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit("keyboardWillShow1", null);
你可以发送任意数据而不是"null",然后该数据将附加到JS侧收到的事件上。
以这个DeviceEventManagerModule.java#L49为例 - 这是如何将后退按钮事件发送到JS的。
假设你有对ReactApplicationContext
的引用,你可以使用类似的模式从活动 onPause
/ onResume
中分派事件。
另一种方法是创建自定义模块,该模块可以注册接收生命周期事件。请参阅 "Timing" 模块的实现:
onHostPause
和onHostResume
方法,并使用上面的代码片段来从那里分派事件