我想要一个使用相同 HTML 的单个站点,但以最适合它所服务的平台的方式对其进行“小部件化”。
是否有标准做法来检测客户端上的移动设备/硬件键盘并决定是否加载 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 英寸的东西都有键盘,但我敢打赌那里有一个巨大的平板电脑(或者谷歌将发布一个 nexus 12 平板电脑: ) 这会做出错误的假设。