2010-03-18 4 views
2

Lorsque vous essayez d'obtenir la géolocalisation sur iPhone la première fois - j'ai refusé. Toutes les autres fois je veux obtenir l'emplacement (avant une autre reload de la page) Je reçois pas de réponse (pas d'erreur et sans succès):utilisateur non autorisé géolocalisation - notifier l'utilisateur deuxième fois

navigator.geolocation.getCurrentPosition(
    function (location) { 
     ig_location.lat = location.coords.latitude; 
     ig_location.lng = location.coords.longitude; 
     alert('got it!'); 
    }, 
    function(PositionError) { 
     alert('failed!' + PositionError.message); 
    } 
); 

est-il un moyen d'avertir l'utilisateur chaque fois que je ne parviens pas à obtenir l'emplacement?
(Je n'ai pas besoin d'utiliser watchPosition ...)

Répondre

4

L'API de géolocalisation est conçue pour ne pas ennuyer l'utilisateur avec des demandes répétées après leur déclin. Vous pouvez réinitialiser les avertissements d'emplacement à partir de l'application Paramètres, mais c'est à peu près tout ce que vous pouvez faire.

Une fois que l'utilisateur a refusé deux fois de suite l'autorisation de géolocalisation, l'API suppose qu'il ne le souhaite pas et ne le demande plus.

Expression exacte de la base de la documentation Lieu:

Si l'utilisateur refuse l'utilisation de votre application du service de localisation, cette méthode signale une erreur kCLErrorDenied. Dès réception d'une telle erreur, vous devez arrêter le service de localisation.

+2

Merci pour la réponse. pour d'autres personnes qui recherchent le document réel - c'est à: http://developer.apple.com/iphone/library/documentation/CoreLocation/Reference/CoreLocation_Framework/CoreLocation_Framework.pdf – Dror

Questions connexes