Борюсь с программной клавиатурой на Honeywell Dolphin 70e с Android 4.0.3. Мне не нужна клавиатура, потому что ввод поступает от встроенного считывателя штрих-кода через «сканирующий клин», настроенный на генерацию ключевых событий.
Я обнаружил, что трюк, описанный в более ранних ответах:
input.blur();
input.focus();
работает, но только один раз, прямо при инициализации страницы. Он помещает фокус в элемент ввода, не показывая программную клавиатуру. Это НЕ работает позже, например. после символа TAB в суффиксе штрих-кода вызывает событие onblur или oninput для элемента ввода.
Для чтения и обработки большого количества штрих-кодов вы можете использовать постфикс, отличный от TAB (9), например. 8, который не интерпретируется браузером. В событии input.keydown
используйте e.keyCode == 8
, чтобы определить полный штрих-код для обработки.
Таким образом, вы инициализируете страницу с фокусом на элементе ввода, со скрытой клавиатурой, все штрих-коды переходят к элементу ввода, и фокус никогда не покидает этот элемент. Конечно, на странице не может быть других элементов ввода (например, кнопок), потому что тогда вы не сможете вернуться к элементу ввода штрих-кода со скрытой программной клавиатурой.
Возможно, перезагрузка страницы после нажатия кнопки может скрыть клавиатуру. Поэтому используйте ajax для быстрой обработки штрих-кодов и используйте обычную кнопку asp.net с PostBack для обработки нажатия кнопки и перезагрузки страницы, чтобы вернуть фокус на ввод штрих-кода со скрытой клавиатурой.
person
Roland
schedule
27.08.2019