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

发布于 2024-11-05 07:25:32 字数 157 浏览 6 评论 0原文

是否可以通过网络应用程序在 iPhone/Android 设备上使用 Javascript 访问指南针?在网上找了几个小时我知道你可以使用

window.ondevicemotion = function(event)

访问加速度计有谁知道你是否可以从指南针访问信息?

Is it possible to access the compass with Javascript on an iphone/ android device from a web app? Have been looking all over the net for hours I know you can access the accelerometer with

window.ondevicemotion = function(event)

Does anyone know if you can access the information from the compass??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

始于初秋 2024-11-12 07:25:32

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

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

希望这有帮助。

On iPhone, you can get the compass value like this.

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

Hope this help.

一个人的夜不怕黑 2024-11-12 07:25:32

现在看起来是跨平台的,请查看这篇优秀文章 作者: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

It looks to be cross platform now, check this excellent article by Ruadhán O'Donoghue.

For Android, it still uses window.addEventListener('deviceorientation', ...) but check for other event properties (event.alpha which is compass orientation ; beta and gamma are also available, which represent the tilting).

Here are the relevant parts (adapted) if the link becomes unavailable:

   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;
          }
        }
      }
    }

Another usage example is available on CodePen.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文