working work not getcurrentposition doesn javascript android html5 google-chrome geolocation

javascript - getcurrentposition - ionic native geolocation not working



navigator.geolocation.getCurrentPosition no funciona en Android Google Chrome (6)

Acabo de probar un montón de dispositivos móviles y la geolocalización Javascript. Utilicé el código de ejemplo de Google para asegurarme de que el problema no esté en mi propio código.

Chrome for Android 4.4 no parece funcionar con servicios de localización solo de GPS y tampoco lo hace el navegador 2.3 de stock. Ambos necesitan "Alta precisión": el uso de redes inalámbricas y 3G / 4G.

Lo curioso es que Firefox para Android funciona sin problemas solo con GPS. Solo los navegadores estándar de Android (Chrome + Mobile Safari) fallan con la configuración de ubicación solo para GPS .

Y el resto de la pandilla: Lumia WP8 con GPS, Windows y Linux (ambos con ADSL) funcionaban perfectamente con cualquier configuración de ubicación.

Este código:

navigator.geolocation.getCurrentPosition( function(position) { alert(position.coords.latitude, position.coords.longitude); }, function(error){ alert(error.message); }, { enableHighAccuracy: true ,timeout : 5000 } );

http://jsfiddle.net/FcRpM/ funciona en Google Chrome en mi computadora portátil, pero en el móvil HTC One S (Android 4.1, GPS desactivado, ubicación a través de redes móviles y wifi habilitado), conectado a internet a través de WiFi.

  1. El navegador predeterminado funciona bien.
  2. Google Chrome, Opera, Yandex.browser para Android falla con "Tiempo de espera caducado".

otras aplicaciones de Android me ubican correctas.


Bueno, me encontré con este problema ayer y el problema era que la API de geolocalización solo se puede usar a través de HTTPS. Funcionará en http://localhost pero para otros dispositivos, necesita estar en una conexión segura.

Pruébalo:

http://lighthouse-dev.herokuapp.com (no funcionará)

https://lighthouse-dev.herokuapp.com (debería funcionar)

Tal vez, y tal vez grande, este es el caso.

¡Espero eso ayude!


Después de muchas horas de buscar una solución para error3, solo puedo reiniciar mi teléfono y la geolocalización comienza a funcionar como siempre. Muy malo...


Puedes probar esto. Parece funcionar en mi dispositivo (Samsung Galaxy Nexus con Chrome 27.0.1453.90 en Wi-Fi (sin conexión de datos, sin GPS))

navigator.geolocation.getCurrentPosition( function(position) { alert("Lat: " + position.coords.latitude + "/nLon: " + position.coords.longitude); }, function(error){ alert(error.message); }, { enableHighAccuracy: true ,timeout : 5000 } );

El problema es que la alerta solo toma cadenas (en su forma original), sin embargo, estás pasando 2 dobles. Modifique el cuadro de alerta, por ejemplo, para alert(''Hey'', ''Hello''); y la salida será solo Hey . Cambia el , a + y obtendrás las cadenas concatenadas HeyHello . No puede usar un signo + dentro de la alert ya que la ecuación se ejecutará primero y luego se mostrará.

Espero que esto lo aclare.


solo agrega

"geolocalización",
"ubicación"

bajo permisos Trabajó para mi. :-)


HAY UN RESULTADO DE LA EJECUCIÓN: para ver la llamada de la posición, y envolver esto en una espera de 5 segundos antes de borrar el ID de visualización. Código a continuación;

var options = { enableHighAccuracy: true, maximumAge: 100, timeout: 60000 }; if( navigator.geolocation) { var watchID = navigator.geolocation.watchPosition( gotPos, gotErr, options ); var timeout = setTimeout( function() { navigator.geolocation.clearWatch( watchID ); }, 5000 ); } else { gotErr(); }

No he jugado con los valores de "opciones" o el retraso de tiempo de espera en este momento, pero el código anterior trae información de posicionamiento precisa en cada plataforma que he probado.