7

知道是否可以使用 JavaScript 在 Safari 中访问 iPhone 指南针?我知道如何访问 GPS,但我无法弄清楚指南针。

4

4 回答 4

4

iOS上,您可以像这样检索罗盘值。

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

有关更多信息,请阅读Apple DeviceOrientationEvent文档。

希望这可以帮助。

于 2013-04-04T13:18:18.583 回答
3

除非您使用iPhoneGap 之类的东西,否则您无法通过 javascript 访问该信息

当时确实如此,在 iOS 5 中,您可以在 JS 中使用指南针方向。 https://developer.apple.com/documentation/webkitjs/deviceorientationevent/1804777-webkitcompassheading

于 2010-04-01T23:20:32.907 回答
1

对于 Android,它可以自动运行,对于 iOS,它需要单击才能启动。这是您可以使用的代码的一部分

startBtn.addEventListener("click", startCompass);

function startCompass() {
  if (isIOS) {
    DeviceOrientationEvent.requestPermission()
      .then((response) => {
        if (response === "granted") {
          window.addEventListener("deviceorientation", handler, true);
        } else {
          alert("has to be allowed!");
        }
      })
      .catch(() => alert("not supported"));
  } else {
    window.addEventListener("deviceorientationabsolute", handler, true);
  }
}

function handler(e) {
  const degree = e.webkitCompassHeading || Math.abs(e.alpha - 360);
}

完整教程在这里,也可以尝试演示 https://dev.to/orkhanjafarovr/real-compass-on-mobile-browsers-with-javascript-3emi

于 2020-09-11T12:48:54.593 回答
0

我建议您将此插件与 LeafletJS 一起使用
https://github.com/stefanocudini/leaflet-compass

与事件和方法一起使用非常简单。

您可以在这里尝试演示:
https ://opengeo.tech/maps/leaflet-compass/

于 2014-07-13T03:45:03.237 回答