4

Я работаю над мобильным веб-проектом, который должен знать направление компаса, на которое указывает пользовательское устройство. Это невероятно просто прямо сейчас, но вот то, что у меня есть:Ориентация устройства HTML5 - надежная реализация компаса?

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

     window.addEventListener("deviceorientation", updateDirection); 

Основываясь на том, что я исследовал до сих пор, альфа-канал события должна быть позиция компаса. Тем не менее, я наблюдал (и читал), что существует множество реализаций на основе ОС и браузера.

  • На моем HTC смартфон, в Chrome или браузере Android по умолчанию, я только получить разумное чтение (0 градусов = Север, 90 = Восток, так далее), когда я держу телефон строго вертикально в «селфи» должность. Любой угол по отношению к телефону забрасывает показания довольно далеко.
  • На моей поверхности Pro с использованием Chrome я не могу получить чтение больше, чем около 50.
  • На моей поверхности Pro с использованием Edge я получаю очень разумные показания, но только когда я держу устройство горизонтально, как если бы оно лежала на столе.

Похоже, что люди достигли направления компаса в мобильном браузере независимо от устройства. Есть ли какая-то библиотека, которую я могу использовать для этого? Или это надо просто код для различных конкретных сценариев, как в этом примере, что также не работают для всех перечисленных устройств:

Device Orientation Events

+1

https://mobiforge.com/design-development/html5-mobile-web-device-orientation-events это не очень хорошая новость для вас. :( – lv0gun9

+1

Для чего-то совершенно другого вы можете попробовать использовать [геолокация] (https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation) и определить вектор курса из двух последовательных lon/lat координаты. Тогда вы можете использовать что-то вроде [this] (http://stackoverflow.com/a/22740092/2592445), чтобы вычислить показание компаса. – Fasermaler

ответ

-1

Это действительно необходимо для того, чтобы использовать JavaScript, чтобы найти ориентация?

Вы могли бы достичь того же результата с CSS media queries

+0

Я не так озабочен ориентацией устройства по вертикали или по горизонтали. Я ищу, что компас заголовок устройства указывает - может ли css медиа-запросы сделать это? – SouthShoreAK

+0

К сожалению, я не думаю, что это возможно. Извините, я думал, что вы беспокоитесь об ориентации устройства, чтобы вы могли настроить интерфейс –