6

Szukam sposobu sprawdzenia, czy urządzenie obsługuje DeviceOrientationEvent lub DeviceMotionEvent. Mówiąc dokładniej, nie wiem, czy urządzenie naprawdę ma akcelerometr.Wykrywanie obsługi ruchu/orientacji urządzenia?

Niestety window.DeviceMotionEvent i window.ondevicemotion odpowiednio window.DeviceOrientationEvent i window.ondeviceorientation istnieje chociaż urządzenie - MacBook Retina - nie posiada akcelerometr.

Jest dla mnie jasne, że jeśli Zdarzenie nigdy nie zostanie wyrzucone, funkcja wywołania zwrotnego z EventLogener również nigdy nie będzie działać. Ale w moim przypadku ja, mój program musi wiedzieć, czy urządzenie ma akcelerometr, ponieważ użytkownik powinien otrzymać powiadomienie, jeśli nie ma akcelerometru.

Odpowiedzi tego posta niestety nie zadziałały na mój problem.

+0

Nie wiem, jak precyzyjne jest zdarzenie "ondevicemotion", ale byłoby dopuszczalne słuchanie zdarzenia, a jeśli żadne zdarzenie nie zostanie odebrane w ciągu, powiedzmy, 5 sekund, to urządzenie spoczywa na stół, trzymany przez kogoś z żelaznym uściskiem, lub nie ma akcelerometru? –

+0

Masz rację. Jest to jeden z możliwych sposobów, o których też pomyślałem. To rozwiązanie ma problem, że muszę poczekać trochę czasu (tylko trochę, bo "devicemotion" strzela bardzo często) dla odpowiedzi tego czeku. W moim przypadku naprawdę muszę wiedzieć od początku, czy urządzenie ma akcelerometr, ponieważ użytkownik jest przekierowywany na inną stronę, jeśli urządzenie nie ma akcelerometru ... –

Odpowiedz

2

Biorąc pod uwagę Twój program musi posiadać funkcjonalność akcelerometr funkcji, jestem przy założeniu, że blokowanie jego wykonania, jeżeli nie ma.

Twój program może domyślnie "zablokować" i nasłuchiwać pojedynczego urządzenia deviceMotionEvent, które zainicjuje cały program, który ostatecznie będzie wiązał się z window.ondevicemotion. W ten sposób nie będziesz musiał blokować wykonywania za pomocą setTimeout; urządzenie deviceMotionEvent zostanie prawdopodobnie uruchomione dość szybko po załadowaniu okna.

+0

Bardzo dobry punkt @Prusprus. Myślę, że to najlepsze rozwiązanie dla tego problemu ... –

Powiązane problemy