2012-08-02 2 views
4

내 프로젝트의 geolocation 인 중 하나를 테스트 중이므로 사용자가 허용하거나 거부하지 않고 메시지를 닫을 수 있음을 알게되었습니다. 프롬프트의 전체 목적을 충족하지 못합니다.사용자 지정 HTML5 Geolocation 프롬프트

그리고 내 프로젝트에서 사용자의 위치에 따라 사용자에게 동적으로 데이터를 표시하고 싶기 때문에 단순히 사용자의 응답을 알지 못하면 두 가지 콜백 중 하나라도 트리거하지 않습니다. 성공/오류.

이 해결책이 있는지 검색하기 시작했으며 시간 제한을 설정하는 것이 좋습니다. 시도했지만 모든 것이 완벽하게 작동합니다. 그러나, 여기에 하나의 작은 결함이 시간 제한 만료에 도달하는 시간으로, 상점입니다, 모든 데이터가 이미 표시되고, 내가 모든 말을 할 때 감지 된 위치가 없기 때문에, 나는, 모든 것을 의미한다.

그래서 나는 작동 할 수 있습니다 두 가지 솔루션, 1) 위치 환경 2로 설정 브라우저에 대한 응답을 허용/위치를 거부하는 사용자를 강제로 지정 지리적 위치 프롬프트 , 공유 할을 만들고 통과)를 내놓았다 페이지로드 (렌더링되는 물건을 중지)을 일시 정지하고 시간 제한 만료 안타하거나 사용자

에서 응답을 얻을 때까지 기다릴

사람이 어떻게이 두 가지 솔루션 중 하나를 구현하는 어떤 생각을 가지고 있습니까?

PS :이 당신에게 분명하지 미안, 난 내 영어가 짜증 알고 있지만 좀 더 상세하게 설명 할 수 있습니다.

고마워요!

+0

어떻게 당신의 데이터를로드 할 수 있습니까? 페이지 소스에서 제대로 되었습니까, 아니면 아약스를 통해 가져 왔습니까? –

+0

현재 페이지 소스에 있지만, 아약스를 통해 템플릿 및 데이터를 가져 오는 것이 더 달성 가능할 것이라고 생각했습니다. – lpaxionj

+0

나는 네가 그렇게 할 수 있을지 의심 스럽다. 사용자 정의 대화 상자가 가능하다면 사용자가 속임수를 사용하여 웹 앱이 자신의 위치에 액세스하도록 허용하는 것이 쉽습니다. – steveax

답변

2

당신은 당신의 프로젝트 기반 브라우저 인 경우 악의적 인 개발자가 사용자를 속여 방법을 사용할 수 있기 때문에, 사용자 정의 지리적 위치 프롬프트를 사용하지 못할 수 있습니다. 또한 Geolocation API는 비동기 이벤트이기 때문에 기다리는 동안 나머지 페이지를 계속로드합니다. 내가 추천 무엇

은 다른 절을 대신 조건문을 사용하는 것입니다. 이렇게하면 스크립트 기능은 위치를 공유 한 후에 만 ​​실행해야하며, 위치 정보가 제공되지 않으면 어떤 일이 일어나는지에 대해 뒤떨어져 있습니다 (데이터가 제공되지 않을 때 상황이 발생할 것을 강력하게 권고합니다). 조건문의

예 JS 사용하여 지리적 위치 정보를 확인합니다 :

if (navigator.geolocation) { 
    // code to run if there is geolocation information 
} 
else{ 
// code to run if no geolocation info is given to the browser 
}