Доступ к компасу устройства из веб-приложения с помощью Javascript - PullRequest
3 голосов
/ 07 мая 2011

Можно ли получить доступ к компасу с помощью Javascript на устройстве iphone / android из веб-приложения? Я искал всю сеть в течение нескольких часов, я знаю, что вы можете получить доступ к акселерометру с помощью

window.ondevicemotion = функция (событие)

Кто-нибудь знает, можете ли вы получить доступ к информации с компаса ??

Ответы [ 2 ]

4 голосов
/ 09 января 2012

На iPhone вы можете получить значение компаса следующим образом.

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

Надеюсь, эта помощь.

0 голосов
/ 14 ноября 2017

Похоже, что теперь он кроссплатформенный, посмотрите эту отличную статью Ruadhán O'Donoghue .

Для Android он все еще использует window.addEventListener('deviceorientation', ...), но проверьтедля других свойств события (event.alpha, которое является ориентацией компаса; также доступны beta и gamma, которые представляют наклон).

Вот соответствующие части (адаптированные), если ссылка становится недоступной:

   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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...