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