我正在从事一个移动网络项目,该项目需要知道用户设备指向的罗盘方向。现在非常简单,但这就是我所拥有的:
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 上一样。
无论使用何种设备,人们似乎都可以在移动浏览器中获取罗盘方向。 是否有一些库可以用来做这件事?或者是否有必要为许多不同的特定场景简单地编写代码,例如这个示例,它也不适用于列出的所有设备:
最佳答案
您真的有必要使用 javascript 来确定方向吗?
您可以使用 CSS media queries 获得相同的结果
关于javascript - HTML5 设备方向 - 可靠的指南针实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32145794/