Este código funciona perfectamente desde el navegador del ordenador, pero no asi desde un navegador de movil, a que puede ser debido ?. Adjunto código en HTML, asi como el script PHP que utilizo para pasar las variables.
Gracias :)
Adjunto código HTML y script PHP
<!DOCTYPE html>
<html>
<head>
<title> Geolocalización </title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<!-- Script para mostrar las coordenadas-->
<script type="text/javascript">
if (navigator.geolocation) { //Validar si hay acceso web a la ubicación
navigator.geolocation.getCurrentPosition(mostrarUbicacion); //Obtiene la posición
} else {
alert("¡Error! Este navegador no soporta la Geolocalización.");
}
//Funcion para obtener latitud y longitud
function mostrarUbicacion(position) {
var latitud = position.coords.latitude; //Obtener latitud
var longitud = position.coords.longitude; //Obtener longitud
var div = document.getElementById("coordenadas");
<!-- div.innerHTML = "<br>Latitud: " + latitud + "<br>Longitud: " + longitud; //Imprime latitud y longitud -->
// ----- INICIO Convertimos las variables de javascript en variables de PHP
$( document ).ready(function() {
// Definimos las variables de javascrpt
var lon_pt = longitud;
var lat_pt = latitud;
// Ejecutamos AJAX
$("#contenedor").load("geolocalizacion.php",{lon_pt, lat_pt});
});
// ----- FIN Convertimos las variables de javascript en variables de PHP
}
</script>
</head>
<body>
<!-- División o secciona para mostrar coordenadas -->
<!-- <div id='coordenadas'></div> -->
<section id="contenedor" style='border:solid 1px black; width:50%; height:100px;'></section>
</body>
</html>
<!-- Aqui comienza el script PHP -->
<?php
session_start();
$_SESSION['vphplon'] = $_REQUEST['lon_pt'];
$_SESSION['vphplat'] = $_REQUEST['lat_pt'];
echo "coordenadas" ;
echo $_SESSION['vphplon'];
echo $_SESSION['vphplat'];
?>
Saludos,
- Intenta utilizar la función error e incluso los parámetros. En caso de dispositivos móviles el problema suele ser la Cache (maximumAge), el Tiempo de intento (timeout) o que simplemente no esté activado el GPS o la Opción Localización ...
<script>
var options = {
enableHighAccuracy: true,
timeout: 50000,
maximumAge: 0
};
function success(pos) {
var crd = pos.coords;
alert('Your current position is:');
alert('Latitude : ' + crd.latitude);
alert('Longitude: ' + crd.longitude);
alert('More or less ' + crd.accuracy + ' meters.');
};
function error(err) {
alert('ERROR(' + err.code + '): ' + err.message);
};
navigator.geolocation.getCurrentPosition(success, error, options);
</script>
- Lee un poco más acerca de geolocation, su manejo de errores y demás opciones:
https://developer.mozilla.org/es/docs/WebAPI/Using_geolocation
Que putisimo asco da el servidor cloudflare.
Me salta siempre que quiero poner javascript, me pide que rellene captcha y al completar el captcha me redirije a crear un nuevo mensaje en vez de responder este. Bucle infinito xD
A ver si editando este post va, si no lo subo a algún sitio o lo cifro...
Ya te puse alerts para que te avise del error que tienes en Android en el caso de gps no activado o si tienes algun tipo de bloqueo o los servicios no estan diaponibles. Te puse varios asique te funcionará.
Codigo:
https://pastebin.com/6iP6htiW
Pd: Si algun mod ve este mensaje y pone el codigo del pastebin directamente en esta respuesta genial.