navigator.geolocation.watchPosition 질문입니다.

398 views
Skip to first unread message

lusterdev

unread,
Feb 23, 2012, 10:51:01 PM2/23/12
to 앱스프레소
좀 이상한 경우에 봉착했습니다. ;;

우선 기존 앱스프레소에서 navigator.geolocation.watchPosition 함수를 사용하여 안드로이드 버전으로
gps 정보를 잘 수신 받었습니다. (위 소스는 앱스프레소로 작성한 apk 파일은 잘 됩니다. gps 정보를 이상한곳으로 잡는
것 빼곤..)

요즘 갑자기 테스트할일이 생겨서 다시 확인해보는데 로칼에서 작성한 html 만 테스트로 해보면
크롬, firefox 등에서 콜백에러로 POSITION_UNAVAILABLE 을 뱉어냅니다.
위치 정보를 사용하겠다고 '수락'을 하였는데도 말이죠 ;;

또한 앱스프레소에서 작성한 내용을

앱스프레소를 사용안하고 Native + Html 방식으로 안드로이드기반의 껍대기를 만든후 웹뷰를 작성하여
로칼의 html 을 바라보게끔 수정하여 테스트 중인데.
(물론. 안드로이드 설정파일에 <uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" /> 도 작성하였습니다.)

전혀 gps 정보를 읽어오질 못하는 경우가 발생합니다.

조금 특이한 점은 앱스프레소로 만든 앱은 gps 정보를 수신할시 "현재위치 정보를 사용하고자 합니다" 라는 메시지박스가 뜨는데
반해 , 안드로이드기반의 웹뷰로 작성한 경우에는 그런 메시지가 나오지 않으며
그렇다고 watchPosition 에서 에러 콜백함수로 떨어지지도 않습니다.


var locationOption =
{
enableHighAccuracy : true,
maximumAge : 30000,
timeout:27000
};
watchGPSId =
navigator.geolocation.watchPosition(successGpsCallback,errorGpsCallback,locationOption);

위와 같은 방법으로 스크립트를 작성하였습니다.

질문 1 : 크롬 , 모질라 등 Local 환경에서 테스트시에 위치정보가 수집 안되는 이유가 무었때문인지 알수 있을까요?
(브라우저의 환경값 등 현재 위치정보를 읽을것이라고 수락하였는데도 불구하고 안되는 이유가 ㅠ.ㅠ)
질문 2 : 앱스프레소를 사용안하고 안드로이드기반에 웹뷰방식으로 했을시 gps 정보가 수신 안되는 이유 ..?

조언 부탁드립니다 .ㅠ.ㅠ

lusterdev

unread,
Feb 24, 2012, 1:35:40 AM2/24/12
to 앱스프레소
구글링결과 아무런 셋팅없이 그냥은 작동을 안하는거였나봅니다.
http://stackoverflow.com/questions/2267513/using-navigator-geolocation-getcurrentposition-in-webview-on-android-2-0-phone
참고해보시면 gps 수신을 받기위한 콜백함수 정의 및 몇가지 해줘야 하는것들이 있네요.
이렇게 작성하고 나니 잘 적용이 됩니다. 쩝 ;;
Reply all
Reply to author
Forward
0 new messages