我有下一个发射器的 js 代码:
DeviceEventEmitter.addListener('keyboardWillShow1', function(e: Event) {
console.log(e);
});
如何从 Activity onPause
/onResume
发出此事件?
最佳答案
您可以使用此处定义的 RCTDeviceEventEmitter.emit
方法从 java 发送事件:DeviceEventManagerModule.java#L27
为此,您首先需要引用 ReactApplicationContext
,然后调用:
reactAppContext
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit("keyboardWillShow1", null);
您可以发送任意数据,而不是“null”,这些数据将附加到您在 JS 端收到的事件。
查看此 DeviceEventManagerModule.java#L49例如 - 这就是后退按钮事件发送到 JS 的方式。
假设您引用了 ReactApplicationContext
onPause
/onResume
中调度事件
另一种方法是创建您的自定义模块,它可以注册接收生命周期事件。在“计时”模块中查看它是如何完成的:
- “计时”模块实现LifecycleEventListener.java界面
- 当模块初始化时,它注册自己以通过该接口(interface)接收生命周期 Timing.java#L126
- 您可以实现该接口(interface)的
onHostPause
和onHostResume
方法,并使用上面的代码 fragment 从那里分派(dispatch)事件
关于android - React native + Android Activity onPause/onResume,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33758390/