我想知道是否可以检测到运行JS
应用的设备类型
我的意思是什么? - 我想提供触摸显示器(可以用作普通的触摸设备,也可以连接鼠标 - 因此它们可以像普通的PC一样工作)和经典的触摸设备(例如手机 - 无法使用鼠标)
有可能吗?我知道如何检测触摸设备:
var isTouch = !!("ontouchstart" in window || navigator.msMaxTouchPoints);
但是如何检测到有触摸显示器或者至少连接了鼠标?
答案 0 :(得分:1)
嗯,你已经有了反映触控功能的bool。获得相同的鼠标是可行的,虽然不是很优雅。你可以这样做:
var hasMouse;
window.addEventListener('mousemove', function mouseCheck(e) {
window.removeEventListener('mousemove', mouseCheck);
hasMouse = true;
});
结合用户代理检查,您可以获得对用户设备的合理估计。当然,一些移动浏览器允许用户欺骗非移动用户代理以进行“桌面”查看。在你不确定设备功能的情况下,我不太喜欢强制接口格式的想法。如何在应用程序启动时简单地显示模态,并使用isTouch&& hasMouse,以及用户代理信息,以指示“推荐”布局?