在客户端检测移动设备/硬件键盘并决定是否加载jQuery Mobile以及网站移动JavaScript或jQuery UI和桌面体验脚本的标准做法是什么?
以下似乎是合理的做法,但我想知道Modernizr.touch是否是最好的检测方法?例如:强制触摸可能不是Surface的最佳解决方案。是否有办法检测是否还有硬件键盘?
Modernizr.load({
test: Modernizr.touch,
yep : ['jquery-mobile.js','mobile.js']
nope: ['jquery-ui.js','desktop.js']
});
编辑:
发现了一些相关的Modernizr错误:
我想我真正需要的是一种方法来检测设备是否支持触摸,并且是否有硬件键盘。我可以使用David Mulder的答案来检测物理单位(英寸)中的设备宽度作为代理,假设任何> 11英寸的设备都有键盘,但我敢打赌,那里会有一款巨大的平板电脑(或者Google将发布一个nexus 12平板电脑:)其中这将是错误的假设。