Я внедряю iOS-приложение на базе ionic 4, специально разработанное для iPad.Приложение отправляет данные штрих-кода на сервер, отсканированные с помощью беспроводного сканера, подключенного через Bluetooth к приложению.Чтобы включить автосохранение, я написал метод захвата событий нажатие клавиши , который обнаруживает нажатие клавиши «ввод» на сканере.Когда он обнаруживает «ключ ввода», данные автоматически отправляются на внутренний сервер.
Вот мой HTML
<ion-item>
<ion-label position = "floating" class="lab-font">Order/Tracking/UCC No.<ion-note style="color: red">*</ion-note></ion-label>
<ion-input #order type = "text" text-uppercase formControlName = "order" (ionFocus) = "enableKey()" (ionBlur) = "scanOrder($event)"
(ionInput) = "checkRepeat()" (keypress)="handleKeyboardEvent($event)" class="lab-font" required ></ion-input>
</ion-item>
Нажатие клавиши запускается с помощью (keypress) = "handleKeyboardEvent ($ event)"
В файле Typescript у меня есть
handleKeyboardEvent(event: KeyboardEvent) {
if(event.key.toLowerCase() === "enter"){
this.submitOrderSearch(this.order.value);
}
}
Когда мы вручную набираем текст с помощью виртуальной клавиатуры, это прекрасно работает.Но когда мы используем сканер (беспроводной, Bluetooth, подключенный к iPAD, используется в качестве устройства ввода) и сканируем штрих-код, последние несколько символов пропускаются при вызове метода submitOrderSearch.
Будет ли задержка при привязке значения к полю ввода?Поскольку сканеры считывают данные довольно быстро, и я вижу, что метод определяет клавишу ввода, как только сканер подает звуковой сигнал.Или я что-то здесь упускаю?
Ниже я использую штрих-код.
![enter image description here](https://i.stack.imgur.com/JyIjN.png)