使用Javascript从Web应用程序访问设备指南针

时间:2011-05-07 03:48:30

标签: web-applications mobile compass-geolocation

是否可以通过网络应用程序在iphone / android设备上使用Javascript访问指南针?我一直在网上看了几个小时,我知道你可以用

访问加速度计

window.ondevicemotion = function(event)

有没有人知道您是否可以从指南针访问信息?

2 个答案:

答案 0 :(得分:4)

在iPhone上,您可以获得这样的罗盘值。

window.addEventListener('deviceorientation', function(e) {
    console.log(e.webkitCompassHeading);
}, false);

希望得到这个帮助。

答案 1 :(得分:0)

现在看起来是跨平台的,请excellent article检查Ruadhán O'Donoghue

对于Android,它仍然使用window.addEventListener('deviceorientation', ...),但检查其他事件属性(event.alpha,这是罗盘方向; betagamma也可用,代表倾斜)。

如果链接不可用,以下是相关部分(改编):

   if(window.DeviceOrientationEvent) {
      window.addEventListener('deviceorientation', function(event) {
        var alpha;
        // Check for iOS property
        if(event.webkitCompassHeading) {
          alpha = event.webkitCompassHeading;
        }
        // non iOS
        else {
          alpha = event.alpha;
          if(!window.chrome) {
            // Assume Android stock
            alpha = alpha-270;
          }
        }
      }
    }

CodePen上提供了另一个用法示例。