2011-11-17 12 views
8

Dodaję do naszej witryny niektóre optymalizacje użyteczności mobilnej. W tym celu poprawiam atrybut type pól tekstowych, aby dać użytkownikowi najlepsze narzędzia wejściowe dla oczekiwanego typu danych.Wykrywanie, czy klucze są dostępne na klawiaturze ekranowej urządzenia mobilnego

Jednym z problemów, z którymi miałem do czynienia w urządzeniach mobilnych z ekranem dotykowym, jest to, że przeglądarki w różnych systemach operacyjnych, a nawet w różnych przeglądarkach w tym samym systemie operacyjnym, wyświetlają różne klawiatury ekranowe, gdy używany jest typ wejścia = "liczba".

Safari na iOS 4.3.3 (iPhone 4) i Chrome na Androida 2.3.4 zawierają kropkę dziesiętną, ale Firefox na Androida 2.3.4 nie.

Próbowałem dodać atrybut kroku (krok = "0,1") bez poprawy w Firefoksie.

Jeśli nie mogę pokazać przecinka dziesiętnego, będę musiał wyświetlić Firefox pełną klawiaturę QWERTY, co oczywiście nie wpłynie na komfort użytkownika. Podnosi również problem podsłuchiwania przeglądarki/urządzenia. Albo będę musiał ustawić QWERTY jako domyślny, i pokaż numer na garść urządzeń, na których mogę faktycznie przetestować, albo ustawię domyślny numerpada i przełączam się z powrotem na QWERTY na urządzeniach, o których wiem, że to się włamie, ta ostatnia opcja jest znacznie mniej wytrzymały, ponieważ nie mogę testować na każdym urządzeniu, jakie kiedykolwiek powstało.

Testowanie obsługi typu wejściowego = "liczba" nie jest poprawką, ponieważ przeglądarka oczywiście obsługuje ten element, po prostu nie oferuje wystarczającej liczby opcji klawiatury, aby wprowadzić wszystkie typy liczb.

Tak więc zastanawiałem się, czy ktoś wiedział o sposobie sprawdzenia obecności określonego klucza (takiego jak przecinek dziesiętny) w klawiaturze, którą przeglądarka/OS przypisuje do typu wejścia, i/lub jeśli ktoś w innych przypadkach są lepsze sugestie, ponieważ jestem całkiem nowy na urządzeniach mobilnych.

Należy również wspomnieć, że używam JavaScript tutaj, ponieważ jest to strona internetowa, a nie natywna aplikacja.

Dzięki :)

+0

Czy 'input type =" tel "' pracowałoby dla Ciebie? – ozbek

+1

Przynajmniej na Androidzie nie ma wymogu, aby były nawet * klucze *. Metoda wprowadzania może wykorzystywać inne formy, takie jak Grafiti2 za pomocą gestów. Z rodzimej aplikacji na Androida nie można ustalić, czy obecna metoda wprowadzania danych użytkownika pokazuje jakiś klucz, nie mówiąc już o przeglądarce. – CommonsWare

Odpowiedz

1

Niestety, Firefox nie obsługuje numeryczną typu wejścia. Jednak nadal możesz spróbować użyć tych dodatkowych atrybutów HTML, aby zachęcić użytkownika do wprowadzania wartości wejściowej dla wprowadzania liczbowego:

+0

'wzorzec' nie jest obsługiwany przez Safari. – ozbek

Powiązane problemy