У меня есть устройство Android с встроенным сканером штрих-кода.Основная причина в том, что я хочу избежать того, чтобы клавиатура всегда всплывала при автоматической фокусировке поля ввода.Поэтому моя идея заключалась в том, чтобы использовать HostListener
в фоновом режиме и запускать каждый вход.Теперь я заметил, что HostListener работает только тогда, когда отображается клавиатура, что фактически означает, что я фокусирую поле ввода.Когда я тестирую его в браузере, мне не нужно фокусироваться на поле.Есть ли на веб-сайте Android какие-то особые вещи, которые я не вижу в данный момент?
Это мой 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);
})