我一直在尝试创建自定义反应原生自定义键盘事件。 具体来说,我一直试图检测退格键。
在我的 MainApplication.java
中public boolean onKeyUp(int keyCode, KeyEvent event) {
// Filter for delete key being pressed
if (event.getAction() == KeyEvent.DEL) {
getReactNativeHost().getReactInstanceManager().getCurrentReactContext()
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
.emit("onKeyPressed", keyCode);
}
return true;
}
在我的反应组件中
componentDidMount() {
if (Platform.OS === 'android') {
DeviceEventEmitter.addListener('onKeyPressed', this.handleKeyPress);
}
}
componentWillUnmount() {
if (Platform.OS === 'android') {
DeviceEventEmitter.removeListener('onKeyPressed');
}
}
有人可以告诉我为什么事件没有被解雇?
答案 0 :(得分:0)
对android开发做了一些研究。
使用Keyevents检测按下的按键是不可靠的。
https://developer.android.com/reference/android/view/KeyEvent.html
由于软输入法可以使用多种创造性的输入方式 文字,无法保证软键盘上的任何按键都会 生成一个关键事件:这由IME自行决定,并在 不鼓励发送此类事件。