我一直在思考这个问题,我无法想办法解决这个问题.有没有办法检测用户是使用虚拟(软件)键盘还是传统(硬件)键盘?
新的Windows Surface在封面上有自己的键盘,对于Android/iPad,有大量不同的蓝牙键盘.
那么,你们中有人对此有任何意见吗?
我的目标是Android,IOS和Windows平板电脑/手机.
动机:(非常主观)
在开发平板电脑/智能手机的网络应用程序时,我已经认识到在许多情况下使用JavaScript键盘而不是操作系统的软件键盘会更容易.
假设您要输入PIN码.而不是让键盘填满屏幕的一半:
软件(OS)键盘:
|----------------|
| [ input] |
| |
|----------------|
| 1 2 3 4 5 |
| 6 7 8 9 0 |
|----------------|
Run Code Online (Sandbox Code Playgroud)
JavaScript键盘:
|----------------|
| [ input] |
| | 1 2 3| |
| | 4 5 6| |
| |_7_8_9| |
| |
| |
|----------------|
Run Code Online (Sandbox Code Playgroud)
如果您需要处理大量输入,可能需要对输入进行叠加div并使用软件键盘:
|----------------|
| P1 P2 P3 P4 |
| [inp 1][inp 2] |
|----------------|
| KEYBOARD |
| | …Run Code Online (Sandbox Code Playgroud) 检测触摸设备(智能手机和平板电脑)与使用userAgent.match的桌面浏览器并返回布尔变量(例如'isipad')的代码是什么?
我需要主要针对Android和Apple设备进行测试.如果设备浏览器是Android或Apple,则返回isipad = false.否则,返回isipad = true.
到目前为止,我这样做了(对于iDevice浏览器检测):
if( navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i) ||navigator.userAgent.match(/iPad/i) )
{var isipad = true;}
else
{var isipad = false;}
Run Code Online (Sandbox Code Playgroud)
它似乎工作,但我希望能够添加Android浏览器,在这种情况下.
提前致谢.亚历克斯