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.