HTML 5 de la Géo Localisation Invite dans Chrome
Juste de commencer à faire en HTML 5 et un test de géo-localisation...l'aimer jusqu'à présent. Je suis frapper un peu de speed bump bien...quand j'essaie d'obtenir mon géolocalisation, google chrome bloque automatiquement la page à partir de l'obtention de mon emplacement. Cela ne se produit pas dans d'autres sites tels que le site ci-dessous:
Les scripts que j'utilise:
<script type="text/javascript" JavaScript" SRC="geo.js"></script>
<script type="text/javascript" JavaScript" SRC="Utility.js"></script>
<script type="text/javascript" JavaScript" SRC="jquery.js"></script>
<script type="text/javascript" JavaScript" SRC="modernizr.js"></script>
function get_location() {
if (geo_position_js.init()) {
geo_position_js.getCurrentPosition(show_map, handle_error);
}
}
function show_map(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
alert("lat:" + latitude + " long:" + longitude);
}
function handle_error(err) {
alert(err.code);
if (err.code == 1) {
//user said no!
}
}
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(show_map, handle_error);
} else {
error('not supported');
}
Je suis en train de tester cela à partir d'un répertoire local sur ma machine, donc il n'y a pas vraiment d'un "domaine" like "http://whatever.com/mytestpage.html". Est-ce pour cette raison que je ne reçois pas invité? Si oui, est-il possible de forcer la browswer pour demander la permission d'obtenir à l'utilisateur de géo-localisation et est-il possible dans mon scénario?
- firefox affiche une invite btw dans cette page
- Question connexe pour mobile: Comment faire pour activer la géolocalisation pour les fichiers locaux sur Mobile Chrome
- La Question elle-même est une solution pour moi. Merci 🙂
Vous devez vous connecter pour publier un commentaire.
Il y a une sorte de restriction de sécurité en place dans Chrome pour l'utilisation de la géolocalisation à partir d'un
file:///
URI, mais malheureusement, il ne semble pas enregistrer toutes les erreurs pour indiquer que. Il fonctionnera à partir d'un serveur web local. Si vous avez installé python essayez d'ouvrir une invite de commande dans le répertoire où les fichiers de test sont et en exécutant la commande:Il devrait commencer à un serveur web sur le port 8000 (peut-être autre chose, mais je vais vous dire dans la console ce port, il est à l'écoute sur), puis accédez à http://localhost:8000/mytestpage.html
Si vous ne disposez pas de python il y a l'équivalent de modules en Ruby, ou Visual Web Developer Express est livré avec un construit en serveur web local.
python -m http.server
pour python 3.xphp -S localhost:8080
php -S <adresse>:<port> Exécuter avec serveur web intégré.node app.js
Exécuter simple Node.js serveur de contenu sur le port 9615 stackoverflow.com/questions/6084360/...Rien de ce qui précède m'a aidé.
Après un peu de recherche, j'ai trouvé que de la M50 (avril 2016) - Chrome exige maintenant une sécurité d'origine (tels que HTTPS) pour la Géolocalisation.
Fonctionnalités dépréciées sur l'Insécurité des Origines
L'hôte "localhost" est spécial b/c sa "potentiellement sécurisé". Vous ne pouvez pas voir les erreurs en cours de développement si vous déployez sur votre machine de développement.
http://sitename.localhost
Google Chrome permetgetCurrentPosition()
sur .localhost, Merci!Comme déjà mentionné dans la réponse robertc, google Chrome bloque certaines fonctionnalités, comme la géo-localisation avec des fichiers locaux. Une alternative plus facile à créer leur propre serveur web serait de simplement lancez google Chrome avec le paramètre
--allow-file-access-from-files
. Ensuite, vous pouvez utiliser la géo-localisation, à condition de ne pas la désactiver dans les paramètres.Assurez-vous qu'il n'est pas bloqué à vos paramètres
http://www.howtogeek.com/howto/16404/how-to-disable-the-new-geolocation-feature-in-google-chrome/
file://
.si vous êtes l'hôte d'un serveur, et toujours face à des questions:
essayez de changer localhost à 127.0.0.1 par exemple http://localhost:8080/ à http://127.0.0.1:8080/
La question, j'ai été confrontés était que j'étais un site à l'aide d'apache tomcat dans eclipse IDE (eclipse luna).
Pour ma santé mentale vérifier j'ai été en utilisant Remy Sharp démo:
https://github.com/remy/html5demos/blob/eae156ca2e35efbc648c381222fac20d821df494/demos/geo.html
et a été l'obtention de l'erreur après avoir fait quelques changements mineurs à la fonction d'erreur malgré hébergeant le code sur le serveur (était seul à travailler sur firefox et à défaut sur chrome et safari):
"Utilisateur refusé de la Géolocalisation
J'ai apporté la modification suivante pour obtenir plus de message d'erreur détaillé:
défaut sur internet explorer derrière virtualbox IE10 sur http://10.0.2.2:8080 :
"L'emplacement actuel ne peut pas être déterminé"
La façon la plus simple est de cliquer sur la zone à gauche de la barre d'adresse et de modifier les paramètres de localisation de là. Il permet de définir les options de localisation, même pour
file:///
Pour une simple solution de contournement, il suffit de copier le fichier HTML à certains partager le cloud, comme Dropbox, et d'utiliser le lien de partage dans votre navigateur. Facile.
Moi aussi j'avais ce problème quand j'ai essayé Gelocation API. J'ai alors commencé à IIS express par le biais de visual studio et ensuite accédé à la page et Il a fonctionné sans aucun problème à tous les navigateurs.