【发布时间】:2015-11-17 13:39:26
【问题描述】:
我有一个带有下一个发射器的 js 代码:
DeviceEventEmitter.addListener('keyboardWillShow1', function(e: Event) {
console.log(e);
});
如何从 Activity onPause/onResume 发出此事件?
【问题讨论】:
标签: android android-activity react-native
我有一个带有下一个发射器的 js 代码:
DeviceEventEmitter.addListener('keyboardWillShow1', function(e: Event) {
console.log(e);
});
如何从 Activity onPause/onResume 发出此事件?
【问题讨论】:
标签: android android-activity react-native
您可以使用此处定义的 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 方法,并使用上面的sn-p 从那里分派事件【讨论】:
我相信现在react-native-activity-android 模块可以做到这一点。
【讨论】: