2011-05-07 2 views
3

웹 앱에서 iPhone/Android 기기의 자바 스크립트로 나침반에 액세스 할 수 있습니까? 모두 당신이Javascript webb 앱의 기기 나침반에 액세스

window.ondevicemotion = 기능 (이벤트)이 나침반의 정보에 액세스 할 수 있는지

사람이 알고 있나요와 가속도계에 액세스 할 수 있습니다 알고 시간 동안 네트워크를 통해 찾고있다 ??

+0

[이 질문] (http://stackoverflow.com/questions/2564219/accessing-iphone-compass-with-javascript)이 물어봤을 때 상황이 변경되었을 수 있으므로 가까운 투표를하지는 않겠지 만 그것은 다른 질문과 동일합니다. –

+0

그래, 그 중 하나를 보았다 ... 4.2 더 많은 기능의 릴리스 가속도계와 자이로 스코프 접근 가능했다. http://www.peterfriese.de/apples-updated-developer-license-this-changes-everything-again/ – Christopher

+0

나에게 나침반 기능이 현재 사용 가능했는지 궁금하게 만든 기사를 읽었습니다 ... 멋질 것입니다! – Christopher

답변

4

iPhone에서는 나침반 값을 이와 같이 얻을 수 있습니다.

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

희망 도움말.

+0

Android에 해당하는 기능이 있습니까? iOS (Safari 및 Chrome)에서 작동하지만 Android에서는 작동하지 않는 페이지를 작성했습니다. –

+0

나는 거기에있는 것 같지만, 불행히도, 나는 그것을 모른다. –

0

지금은 크로스 플랫폼으로 보입니다. 이것을 excellent article에 의해 Ruadhán O'Donoghue으로 확인하십시오.

안드로이드, 그것은 여전히 ​​window.addEventListener('deviceorientation', ...)를 사용하지만 다른 이벤트 속성 확인 (나침반 방향이다 event.alpha 단계; betagamma과 틸팅을 표현하는도 가능). 링크를 사용할 수없는 경우 여기

은 (개정판) 관련 부분은 다음과 같습니다

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 볼 수 있습니다.

관련 문제