Intereting Posts
Opengl ES 1.1 / Android – Фигура текстурирования на квадрат 2011 года Какие методы жизненного цикла активности лучше всего регистрировать / отменять регистрацию на шину событий? Странное поведение – фрагмент VideoViewer не работает с MediaController Обработка экрана без потери данных – Android Android создает ярлыки на главном экране Как перенести изображение с его URL на SD-карту? Перемещение маркера между 2 координатами по направлениям движения ImeOptions "actionNext" программно – как перейти к следующему полю? Как получить интерактивные гиперссылки в AlertDialog из строкового ресурса? Диалог Android Alert изнутри службы намерения Реагируйте собственный пользовательский вид, нет propType для встроенного носителя Как узнать масштаб графической матрицы в Android? Android – вызвано: android.view.ViewRootImpl $ CalledFromWrongThreadException Как узнать причину SIGSEGV в Android Как принять полученный Bluetooth-файл в приложении Android?

JQuery – разрешить клавиатуру Autoshow на мобильных устройствах

У меня есть приложение Rails с закрытым контентом. На некоторых страницах я хочу автоматически выбрать текстовый ввод, чтобы я мог использовать внешний сканер bluetooth для сканирования штрих-кода без необходимости выбирать его с помощью мыши / сенсорного экрана каждый раз. Это отлично работает на немобильных устройствах. Однако на мобильных устройствах (в основном на планшетах) я хочу, чтобы клавиатура всплывала (так как сканеры рассматриваются системой «клавиатура»). Я знаю, что это предотвращает iOS, потому что это может раздражать. Однако я хочу знать:

  1. Могу ли я автоматически открывать клавиатуру на планшетах Android и / или Windows?

  2. На iOS я могу изменить это поведение по умолчанию, так что клавиатура автоматически появляется? У меня есть доступ ко всем устройствам, для которых это поведение необходимо.

Изменить: я знаю, что я могу использовать событие click чтобы отобразить клавиатуру (вот как она выглядит сейчас). Тем не менее, я не хочу касаться планшета каждый раз, когда я хочу сканировать.

Solutions Collecting From Web of "JQuery – разрешить клавиатуру Autoshow на мобильных устройствах"

Существуют некоторые способы обхода, за исключением использования большого prompt() .

  1. Оберните веб-приложение в Phonegap и выполните следующие действия .
  2. Помня о том, что сканер bluetooth требует первого щелчка, чтобы включить прослушивание событий keyboard , вы можете слегка изменить js-код, чтобы выполнить первый щелчок вручную (скажем, полноэкранное textarea ), а затем обработать сканер. Это может быть textarea которое скрывается сразу после первого щелчка, и все делается с помощью javascript без текстовой области.
  3. Похоже, что Windows-смартфоны могут вам помочь, не могут найти проблемы с проблемой.

Я тестировал скрипт автофокуса в Chrome56 с Windows 8.1, Windows10 и старым Windows Mobile 8.1 на Nokia Lumia. В первых двух случаях он слушает клавиатуру после фокусировки. Последний нет.

Бонус. HTC One M8 эмулятор с Android 4.4 прослушивает клавиатуру без щелчка. Протестировано с помощью службы браузера . Что делать, если есть некоторые примеры андроида без необходимости клика?

Bonus2 – библиотека сканера autodetect.

Исходя из ответов thoses, вы должны попробовать некоторые обходные пути

Вы не можете, по крайней мере, не в iOS (iPhone), и я тоже считаю Android. Это проблема юзабилити, с которой клавиатура не должна запускаться, за исключением ввода пользователем (это просто раздражает, если она автоматическая).

Я знаю несколько способов обойти это:

  • prompt() открывает клавиатуру
  • Если вы вызываете .focus() из .click() (например, из> открытия вашего диалога), появляется клавиатура

В вашем случае при открытии вашей страницы?

По крайней мере, возможно, эта скрипта JS может помочь вам или этому

Вы можете использовать JavaScript в встроенных функциях для обработки событий, таких как focus (), prompt (), чтобы запустить функцию сканирования штрих-кода. В этом случае было бы полезно также изменить некоторые удобства использования. Для создания гибридных приложений попробуйте прочитать на плагине Cordova Keyboard на https://github.com/cjpearson/cordova-plugin-keyboard

Счастливое кодирование.

Попробуйте под кодом. Это может сработать

 // div is some selected element var f = function(event) { $timeout(function() { // angular way, setTimeout is OK input[0].focus(); event.preventDefault(); }) }; var mobile = false; div.on('click', function(event) { if(mobile) return; f(event); }); div.on('touchstart', function(event) { mobile = true; f(event); }); div.on('touchend', function(event) { event.preventDefault(); event.stopPropagation(); }); 

Мой лучший выбор – использовать внешний вход и фокусировать его. Это поможет вам контролировать –

  1. Время появления клавиатуры (setTimeOut)
  2. Проверить и снова открыть клавиатуру

Вам нужно будет сделать что-то вроде этого –

 <input type="text" style="visibility: hidden; position: fixed; left: -200px" > 

С jQuery-

 $("#theOffViewBox").focus(); 

Это будет одинаково работать на iOS / Android / Windows / Linux как базовый JavaScript jugad.