我有一个非常好的HTML5指南针。现在,我需要一种智能方法来区分“支持伪设备方向”的浏览器(如桌面铬和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 book上的chrome有触摸支持,还有伪设备方向?
答案 0 :(得分:2)
它似乎按原样工作,我错了,mac书上的chrome不会进入“真正的指南针”部分。应该测试一下,也许吧。
if (window.DeviceOrientationEvent && 'ontouchstart' in window) {
// setup real compass thing, with event.alpha
document.body.innerHTML = "haz!";
} else {
// setup some mouse following hack
document.body.innerHTML = "nope";
}
检查一下自己:http://jsfiddle.net/benzkji/J58ef/
如果启用了启用了设备定位功能的启用触控的windos笔记本电脑,则会发生这种情况。可能会检查deviceorientation事件的“绝对”属性:https://developer.mozilla.org/de/docs/WebAPI/Detecting_device_orientation