javascript - HTML5 设备方向 - 可靠的指南针实现?

标签 javascript html cross-platform compass-geolocation w3c-geolocation

我正在从事一个移动网络项目,该项目需要知道用户设备指向的罗盘方向。现在非常简单,但这就是我所拥有的:

        var updateDirection = function (evt) {
            $("#direction").val(evt.alpha);
        };

        window.addEventListener("deviceorientation", updateDirection);

根据我目前的研究,事件的 alpha channel 应该是罗盘位置。但是,我观察到(并阅读到)有多种基于操作系统和浏览器的实现。

  • 在我的 HTC 智能手机上,在 Chrome 或默认的 Android 浏览器中,当我将手机完全垂直地放在“自拍”位置时,我只能获得合理的读数(0 度 = 北,90 = 东,依此类推)。手机的任何 Angular 都会使读数相差很远。
  • 在使用 Chrome 的 Surface Pro 上,我无法获得大于 50 的读数。
  • 在使用 Edge 的 Surface Pro 上,我得到了非常合理的读数,但只有当我水平握住设备时,就好像它是放在 table 上一样。

无论使用何种设备,人们似乎都可以在移动浏览器中获取罗盘方向。 是否有一些库可以用来做这件事?或者是否有必要为许多不同的特定场景简单地编写代码,例如这个示例,它也不适用于列出的所有设备:

Device Orientation Events

最佳答案

您真的有必要使用 javascript 来确定方向吗?

您可以使用 CSS media queries 获得相同的结果

关于javascript - HTML5 设备方向 - 可靠的指南针实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32145794/

相关文章:

mobile - Xamarin 形式 : The equivalent of . Finish()

c++ - 如何根据平台排除Qt中的某些文件

javascript - 在网页上自动移动对象

javascript - Jquery - 使用过滤功能对元素进行计数并显示

c# - 从字符串 C# 构建表

html - 如何删除具有显示属性和内联 block 值的 div 内的填充

javascript - 每个第二个逗号后分隔数组

javascript - 追加错误动态表

html - 在另一个 DIV 中 float 一个 DIV

perl - 在 if 语句中使用 'local' 关键字