【发布时间】:2013-09-24 10:07:55
【问题描述】:
我有一个工作正常的 HTML5 指南针。现在我需要一种聪明的方法来区分“启用伪设备方向”的浏览器(如桌面 chrome 和 FF)和真正的候选者,如使用设备磁力计的 iPhone/Android/iPad 浏览器。
我目前的解决方案是对 DeviceOrientationEvent 和触摸支持进行基本检查:
if (window.DeviceOrientationEvent && 'ontouchstart' in window) {
// setup real compass thing, with event.alpha
} else {
// setup some mouse following hack
}
够了吗?我不太确定“具有触摸支持但没有磁力计”的设备,例如 Mac 书上的 chrome 具有触摸支持,以及假的设备方向?
【问题讨论】:
-
if(window.innerHeight > window.innerWidth){ alert("横向方向!"); } 也可以参考this url
-
为了测试触摸支持,您可以使用 function is_touch_device() { try { document.createEvent("TouchEvent");返回真; } 捕捉 (e) { 返回假; } }
-
谢谢,但这与改变方向无关。它是关于“它是否内置了真正的指南针”。请参阅developer.mozilla.org/de/docs/WebAPI/… 底部的示例适用于我的 chrome on mac book ...
-
'ontouchstart' 与设备方向有什么关系?
-
尝试以某种方式检查设备是否内置了真正的指南针。
标签: javascript html mobile magnetometer