3

是否可以通过网络应用程序在 iphone/android 设备上使用 Javascript 访问指南针?已经在网上搜索了好几个小时我知道你可以访问加速度计

window.ondevicemotion = 函数(事件)

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

4

2 回答 2

4

在 iPhone 上,您可以像这样获取指南针值。

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

希望这有帮助。

于 2012-01-09T15:50:41.647 回答
1

它现在看起来是跨平台的,请查看Ruadhán O'Donoghue的这篇优秀文章

对于 Android,它仍然使用window.addEventListener('deviceorientation', ...)但检查其他事件属性(event.alpha即指南针方向;beta并且gamma也可用,表示倾斜)。

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

   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上提供了另一个使用示例。

于 2017-11-14T12:15:28.237 回答