android - 未打开本机键盘时未调用 HostListener
问题描述
我有一个带有集成条形码扫描仪的 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);
})
解决方案
推荐阅读
- reactjs - 具有多个 API 调用的 React 函数
- jenkins - SVN 环境变量在 Jenkins 中不可用
- javascript - 将另一个函数添加到 onclick
- pandas - 如何删除熊猫数据框中的日期范围
- amazon-web-services - 如何从 CloudFormation 模板中引用 json 配置值?
- c++ - Sqlite3 C++ 线程选择
- javascript - 搜索过滤器列表与搜索严格性无关的词序问题
- laravel - 在 vuex 中登录操作后向 axios 请求添加标头令牌
- r - dplyr 中 mutate_if 的函数参数适用于软贬值的 funs() 但不适用于 list()
- css - Angular Material 按钮样式仅在 app.component 中应用