2016-10-25 3 views
1

J'essaie d'utiliser HTML5 gelolocation pour obtenir l'emplacement du visiteur actuel. En raison de la confidentialité, le navigateur invite l'utilisateur à autoriser/interdire le partage de son emplacement avec le site.Comment savoir qu'un visiteur a refusé de partager son emplacement avec le site?

Si l'utilisateur n'autorise PAS le partage de son emplacement, je souhaite afficher un message sur la console.

Voici ce que je l'ai fait

$(function() { 

    // Try HTML5 geolocation. 
    if (navigator.geolocation) 
    { 
     navigator.geolocation.getCurrentPosition(function(position) 
     { 
      findClosestStore(position.coords.latitude, position.coords.longitude); 
     }, displayMapWithAddressBar); 

    } 
    else 
    { 
     // Browser doesn't support Geolocation 
     console.log('browser does not support geolocation!') 
     displayMapWithAddressBar(); 
    } 

}); 


function displayMapWithAddressBar() 
{ 
    console.log('Show the map since the location was not detected!'); 
} 

Mais lorsque l'utilisateur refuse de partager leur emplacement, je ne vois rien dans la console. Je m'attends à voir un message à dire Show the map since the location was not detected!

Comment puis-je savoir qu'un utilisateur a refusé de partager son emplacement?

MISE À JOUR

Mon travail de code comme prévu dans Google Chrome, mais pas dans Firefox. Comment puis-je faire fonctionner cela dans tous les navigateurs?

+2

déjà répondu ici: http://stackoverflow.com/questions/6092400/is-there-a-way-to-check-if-geolocation-has-been -declined-with-javascript – Korgrue

+0

@Korgrue Je ne vois pas de réponse dans la liste que vous avez fournie. Mon code dans la question fonctionne très bien dans Google Chrome, mais pas Firefox. – Jaylen

+0

Dans Firefox, vous devez implicitement saisir le lat et vous connecter individuellement. fonction showPosition (position) { alerte (position.coords.latitude + "" + position.coords.longitude); } navigator.geolocation.getCurrentPosition (showPosition); Je testerais null sur lat ou long pour l'activation de la géolocalisation FF. – Korgrue

Répondre

0

Il n'y a aucun moyen de distinguer si oui ou non ils ont refusé l'autorisation ou si leur navigateur est tout simplement incompatible (dans Firefox, au moins). La façon de le faire est d'afficher la carte avec la barre d'adresse, ou quel que soit le comportement par défaut, puis de mettre à jour l'interface utilisateur si et quand ils acceptent. Ce code est beaucoup plus simple ...

displayMapWithAddressBar(); 
navigator.geolocation.getCurrentPosition(function(position){ 
    findClosestStore(position.coords.latitude, position.coords.longitude); 
});