Y a-t-il un moyen d'inviter l'utilisateur à la géolocalisation sur certains déclencheurs, après avoir refusé le partage de l'emplacement?
navigator.geolocation.getCurrentPosition
3 Réponses :
Jetez un coup d'oeil à cet extrait de code et cette réponse: Quel est le meilleur plug-in jquery qui gère HTML5 Emplacement?
if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(successFunction, errorFunction); }else{ errorFunction(); } function successFunction(position) { //uses HTML5 if available var lat = position.coords.latitude; var lng = position.coords.longitude; } function errorFunction(){ //uses IP if no HTML5 $.getJSON("http://freegeoip.net/json/", function(res){ var lat = res.latitude; var lng = res.longitude; }); }
Cela résout-t-il réellement le problème en question ici (que l'invite à autoriser la recherche de géolocalisation ne vient pas à nouveau après que cela a été refusé une fois) ...? J'en doute.
ne répond pas à ma question cependant
Je suppose que le seul moyen de contourner consiste à rafraîchir la page (si elle est une option) pour pouvoir vous inviter à nouveau.
Si l'utilisateur clique sur la permission de refuser la permission, cela signifie simplement "Non, et ne me dérange pas encore ..." P>
Cependant, l'utilisateur peut le faire en supprimant les paramètres de localisation-actions, puis bien sûr. L'invite apparaît à nouveau. P>
ou utilisateur peut simplement modifier les paramètres si le navigateur le permet, par exemple, par exemple Chrome gère ces paramètres comme des exceptions (nuisibles si l'utilisateur a permis ou refusé la permission) afin que l'utilisateur doit supprimer les paramètres, resp. EXCEPTION TOUTEILLE de toute façon. P>
Votre seule option consiste à attraper l'erreur et à utiliser E.G. une API externe pour trouver l'emplacement de l'utilisateur par IP. Vous pouvez le programmer par vous-même ou il existe bien sûr des solutions existantes comme @venkat suggérées. P>
Mais soyez au courant de la géolocalisation IP est une excellente précision de l'adresse, il est parfois juste exactement de l'état . P>
Cet example de Mozilla's Docs < / a> montre un bon exemple comment gérer les erreurs de géolocalisation: p>
La meilleure option pour cela est de configurer une sous-domaine de géolocalisation et de le charger dans un iframe.
geo-0.domain.com geo-1.domain.com geo-2.domain.com geo-3.domain.com geo-4.domain.com geo-N.domain.com