2016-06-10 2 views
3

geolocation이 켜져있을 때 휴대 전화에서 제대로 작동하는 지리적 위치 확인 버튼 클릭으로 트리거되는 기능이 있습니다. 꺼져있을 때 예상대로 말하면 메시지가 표시됩니다. 문제는 먼저 휴대 전화의 위치 서비스가 꺼져 있고 버튼이 클릭되면 (예상대로 메시지가 팝업 됨) 앱이 아직 열려있는 상태에서 위치 서비스를 다시 켜고 다시 버튼을 클릭하면 여전히 동일합니다 '위치 서비스 없음'메시지가 나타납니다.위치 서비스가 꺼져있을 때 위치 정보 서비스가 작동하지 않음

각 버튼에서 휴대 전화의 위치 서비스가 켜지거나 꺼져 있는지 확인하는 방법이 있습니까? Android 및 IOS에서 동일한 결과를 얻습니다.

코드 :

$(document).ready(function() { 

    $('#smallScreenGeolocate').on('click', function(){ 

    getCurrentLocation(); 
    }); 
}); 

function getCurrentLocation() { 
if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(addGeolocationMarker, locationError); 
    return true; 
} 
else { 
    alert("Browser doesn't support Geolocation. Visit http://caniuse.com to discover browser support for the Geolocation API."); 
    return false; 
} 
} 
+0

아무도 : 그것은 사용자의 위치를 ​​취득에 실패했을 경우에 실행하는 기능을 지정? 이 문제를 해결할 수있는 것이 없습니다 ... 웹 응용 프로그램이 열려있는 동안 Geolocation이 켜지거나 꺼져 있는지 감지 할 수없는 이상한 것 같습니다 ...? – JasonBK

+0

우리는 어떤 종류의 프레임 워크에 대해 이야기하고 있습니까? 코드 밧바, 자마린 또는 간단한 웹 응용 프로그램처럼? – ddb

+0

페이지를 새로 고침 (위치 활성)하면 위치 세부 정보에 액세스 할 수 있습니까? – ddb

답변

1

확인 서로이 답변이 SO 게시 https://stackoverflow.com/a/14862073/6539349 현재 http://www.w3schools.com/html/html5_geolocation.asp

function getLocation() { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition,showError); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 
} 

function showPosition(position) { 
    x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude; 
} 

두 번째 매개 변수 제안 오류가 무엇인지 확인해야

showError 오류를 처리하는 데 getCurrentPosition() 메소드의

function showError(error) { 
    switch(error.code) { 
     case error.PERMISSION_DENIED: 
      x.innerHTML = "User denied the request for Geolocation." 
      break; 
     case error.POSITION_UNAVAILABLE: 
      x.innerHTML = "Location information is unavailable." 
      break; 
     case error.TIMEOUT: 
      x.innerHTML = "The request to get user location timed out." 
      break; 
     case error.UNKNOWN_ERROR: 
      x.innerHTML = "An unknown error occurred." 
      break; 
    } 
} 
+0

현지화를 전환 한 후 버튼을 탭하면 해당 오류 중 하나가 표시됩니까? 그렇다면 어느 것입니까? – ddb

+0

@ddb 새로 고칠 때 작동하지만 webapp이 app 래퍼를 사용하여 Apple Store에서 앱으로 사용될 때 충분하지 않습니다. 이미 위의 모든 오류 코드가 표시됩니다. webapp이 열려있는 경우 geolocation을 켠 후에도 동일한 오류가 발생합니다. 위의 코드와 비슷한 코드가 앱에 있습니다. 이건 내 문제를 해결하지 못합니다. – JasonBK

+0

다른 답변도이 문제를 해결하지 못합니다. – JasonBK