【问题标题】:How to get absolute compass heading on Cordova Android platform如何在 Cordova Android 平台上获取绝对罗盘航向
【发布时间】:2019-08-06 13:42:10
【问题描述】:

我正在 Android 平台上使用 Cordova 开发一个混合应用程序。我想在我的设备方向和真北之间获取指南针方向。

然而,'deviceorientationabsolute' 事件(如本文所述 https://developers.google.com/web/updates/2016/03/device-orientation-changes 所述)目前为我提供了相对于我的设备初始方向的罗盘值。我期待一个参考真北的绝对值。

使用 chrome 控制台,我调试了我的设备并检查了 'deviceorientationabsolute' 事件是否可用

('ondeviceorientationabsolute' in window)
true

我还询问了 webview 使用的是什么版本的导航器:

navigator.userAgent

"Mozilla/5.0 (Linux; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.031; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/69.0.3497.100 Mobile Safari/537.36"

这里是 Cordova 版本(在项目文件夹中)

cordova --version
9.0.0 (cordova-lib@9.0.1)

这是我用来获取指南针方向的代码

window.addEventListener("deviceorientationabsolute", getorientation, true);

function getorientation(event) {
    compassbearing = Number(360 - event.alpha).toFixed(1);
    $("#InputCompassbearing").val(compassbearing);
}

【问题讨论】:

    标签: android cordova android-webview


    【解决方案1】:

    此行为显然是由我的设备上的指南针校准问题引起的。校准指南针后,它工作正常。

    让我烦恼的是“需要校准”事件没有被触发。它给了我罗盘的相对值,这可能是 Chrome 或 Android API 的不当行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-23
      • 2014-09-17
      • 1970-01-01
      • 1970-01-01
      • 2016-09-07
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      相关资源
      最近更新 更多