Problema de Geolocalizacion desde navegador telefono movil

Iniciado por almonts, 3 Junio 2019, 20:36 PM

0 Miembros y 1 Visitante están viendo este tema.

almonts

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


   
Código (html5) [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title> Geolocalizaci&oacute;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'];
?>


EdePC

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 ...

Código (javascript) [Seleccionar]
<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

@XSStringManolo

#2
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.