首页 > 解决方案 > 未打开本机键盘时未调用 HostListener

问题描述

我有一个带有集成条形码扫描仪的 android 设备。主要原因是,我想避免当我自动聚焦输入字段时键盘总是弹出。所以我的想法是,HostListener在后台使用一个并触发每个输入。现在我注意到 HostListener 仅在显示键盘时才起作用,这实际上意味着我专注于输入字段。当我在浏览器中测试它时,我不需要专注于该领域。android webview 这里有一些特殊的东西,我现在没有看到吗?

那是我的 HostListener

  @HostListener('input', ['$event'])
  onKeyDown(event: KeyboardEvent) { 

    var input = event.target as HTMLInputElement;

    alert(input);

  }

编辑 我找到了一种新方法,奇怪的是,当我使用扫描仪时,这个方法会被调用,但现在我遇到的问题是我得到的问题是类型“{}”e.keyCodee.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);

})

标签: androidangularcordovaionic-framework

解决方案


推荐阅读