Navigator.geolocation.getCurrentPosition siempre obtiene el tiempo de espera en Android hasta que GPS / Location esté desactivado
app.controller('dashboard', function($scope){ $scope.getPosition = function(position){ $scope.acc = position.coords; $scope.lat = position.coords.latitude; $scope.lng = position.coords.longitude; $scope.$apply(); }; $scope.getPositionErr = function(error){ alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n'); }; navigator.geolocation.getCurrentPosition($scope.getPosition, $scope.getPositionErr, {maximumAge: 0, timeout: 6000, enableHighAccuracy:false}); });
Estoy usando Angular JS y Cordova para una aplicación de Android. Este código funciona bien en el escritorio, pero no en Nexus 4 con Lollipop. También el código del regulador está ejecutando después de deviceready según el requisito de Cordova
Yo he tratado
- Lectura y escritura de localStorage?
- Habilitar cámara trasera con HTML5
- ¿Qué no puedes hacer con una aplicación móvil HTML5 / Javascript que puedes hacer con una aplicación móvil nativa?
- Implementación horizontal / vertical dedo deslizar desplazamiento en android panal webview / webkit?
- Usar jQuery móvil sin conexión
- Ajuste HighAccuracy a false
- Eliminación del complemento de geolocalización para que utilice la ubicación predeterminada de Wifi
- Reinicio del dispositivo
- Borrado del caché del navegador
- Modo de avión activado / desactivado
- Wifi activado / desactivado
- Datos móviles activados / desactivados
Pero soy incapaz de obtener lat, larga y la geolocalización siempre obtiene tiempo de espera.
Sólo funciona cuando habilité la ubicación / GPS de configuración. Después de habilitarlo, el código funciona como se esperaba.
- Chrome para Android no muestra correos web de Google correctamente
- Android Bottom White Stripe al rellenar contenido Webview
- ToDataURL no funciona en los navegadores Android
- Android ignora la escala máxima al usar meta-tag de viewport de ancho fijo
- ¿Cómo integrar HTML 5 para BlackBerry, IOS y Android?
- Selector de fecha Android 4.1.1 / 4.1.2 Galaxy S3
- No se pueden seleccionar varias imágenes para subirlas en Android - Chrome Web Browser
- Mejores prácticas para crear archivos de traducción para múltiples plataformas
Navigator.geolocation.getCurrentPosition es sólo para GPS cuando la opción "enableHighAccuracy" se establece como 'true' (predeterminado). Es por eso que no puede obtener la ubicación actual a través del dispositivo móvil. Acerca de "que está trabajando en el escritorio", creo que debe haber abierto GPS en su navegador.
Utilicé generalmente código abajo para conseguir la posición sin importar que el GPS esté abierto o no.
var positionOption = { timeout: 500, enableHighAccuracy: true }; var gpsSunccuss = function(currentPosition) { //use gps position }; var gpsFailed = function() { //use some 3rd party position solution(get position by your device ip) getPositionBy3rdParty(); }; navigator.geolocation.getCurrentPosition(gpsSunccuss, gpsFailed, positionOption);
Por otro lado, puede establecer enableHighAccuracy como 'false'.
Tuve idéntico problema y esto lo arregló para mí
{enableHighAccuracy:false,maximumAge:Infinity, timeout:60000}
- Cómo agregar una etiqueta de aplicación personalizada en la aplicación de contacto androide nativa?
- ERROR / Web Console: Uncaught Error: Demasiado tiempo pasado en el controlador de descarga