我有一个带整数条形码扫描仪的android设备。主要原因是,我想避免在自动聚焦输入字段时总是弹出键盘。所以我的想法是,在后台使用HostListener
并触发每个输入。现在,我注意到HostListener仅在显示键盘时才起作用,这实际上意味着我将焦点放在输入字段上。当我在浏览器中对它进行即时测试时,我不需要专注于该领域。 android webview在这里有一些我现在看不到的特殊东西吗?
那是我的HostListener
@HostListener('input', ['$event'])
onKeyDown(event: KeyboardEvent) {
var input = event.target as HTMLInputElement;
alert(input);
}
编辑
我找到了一种新方法,很奇怪的是,我在使用扫描仪时调用了此方法,但是现在我遇到了这样的问题,即问题e.keyCode
和e.target
在类型'{上不存在}'。我已经尝试将e作为KeyboardEvent和e作为InputEvent,但这也无法正常工作。但是,当我在浏览器中检查对象时,它绝对是正确的对象,但是我无法访问它。
this.subscription = Observable.fromEvent(document, 'keypress').subscribe(e => {
if(e.keyCode == 13) {
console.log("called");
}
})
this.subscription = Observable.fromEvent(document, 'input').subscribe(e => {
var input = e.target as HTMLInputElement;
console.log(input.value);
})