Определение наличия клавиш на экранной клавиатуре мобильного устройства

Я добавляю на наш сайт несколько оптимизаций для удобства использования мобильных устройств. В рамках этого я настраиваю атрибут type текстовых полей, чтобы предоставить пользователю лучшие инструменты ввода для ожидаемого типа данных.

Одна проблема, с которой я столкнулся в мобильных устройствах с сенсорным экраном, заключается в том, что браузеры в разных ОС и даже разные браузеры в одной и той же ОС показывают разные экранные клавиатуры при использовании input type = "number".

Safari на iOS 4.3.3 (iPhone 4) и Chrome на Android 2.3.4 включает десятичную точку, а Firefox на Android 2.3.4 - нет.

Я попытался добавить атрибут step (step = "0.1") без каких-либо улучшений в Firefox.

Если я не могу показать десятичную точку, мне нужно будет показать Firefox полную клавиатуру QWERTY, что, очевидно, не будет способствовать лучшему взаимодействию с пользователем. Это также поднимает проблему обнюхивания браузера / устройства.Либо мне нужно сделать QWERTY по умолчанию и показать цифровую клавиатуру нескольким устройствам, на которых я действительно могу протестировать, либо сделать цифровую клавиатуру по умолчанию и переключиться обратно на QWERTY на устройствах, которые, как я знаю, это сломается, последний вариант будучи гораздо менее надежным, поскольку я не могу протестировать на всех когда-либо созданных устройствах.

Тестирование поддержки input type = "number" не является исправлением, поскольку очевидно, что браузер поддерживает этот элемент, он просто не предлагает достаточно вариантов клавиатуры для ввода всех типов чисел.

Итак ... Мне было интересно, знает ли кто-нибудь способ проверить наличие определенной клавиши (например, десятичной точки) на клавиатуре, которую браузер / ОС назначает типу ввода, и / или кто-нибудь еще есть несколько предложений получше, так как я новичок в мобильных устройствах.

Я также должен упомянуть, что здесь я использую JavaScript, так как это веб-сайт, а не собственное приложение.

Спасибо :)

8
задан Dan 17 November 2011 в 00:51
поделиться