Solución:
Entonces, actualmente tengo una aplicación que aborda todos los problemas que enumeró anteriormente y aquí está el complemento que estoy usando:
https://github.com/mauron85/cordova-plugin-background-geolocation
-
El complemento hace uso de watchPosition () no getCurrentPosition () ya que este tarda demasiado en hacer ping constantemente al dispositivo y consume más energía de la batería.
-
Esto definitivamente funcionará para Android e iOS, pero en mi humilde opinión, funciona mejor con Android que este último, en lo que respecta a la precisión y la funcionalidad de mantener vivo.
-
Lo metí en Google Play sin problema, Apple permite este complemento, hay varias aplicaciones que usan este complemento en la tienda de Apple, pero Apple probablemente lo rechazará inicialmente y preguntará a las aplicaciones la intención de uso en segundo plano, luego tendrá que hacer una apelación en cuanto a lo que está haciendo la aplicación en segundo plano y asegúrese de que no se ejecute indefinidamente (esta fue mi experiencia).
una. También querrá asegurarse de señalar a los píos de Apple que hay una manera para que el Usuario desactive el seguimiento de geolocalización en segundo plano. ¿Asumo que hay? Ese es su principal problema con el uso del complemento.
Buena suerte.
Este complemento tiene una excelente guía sobre cómo usar un servidor de meteoritos y cordova para hacer lo que necesita:
zeroasterisk / meteor-cordova-geolocation-background
Se configura automáticamente tanto con Android como con iOS. Para Windows Phone, no lo sé.
- Meteor configura este Plugin en Cordova (tienes que configurarlo)
- Meteor configura este Plugin en Cordova (tienes que configurarlo)
- Meteor puede activar el servicio en segundo plano para obtener detalles de geolocalización (GPS)
- El servicio Cordova Background envía periódicamente sus datos al servidor Meteor (no a la instancia del cliente Cordova)
- Meteor Server puede actualizar una colección (o cualquier otra cosa)
- Meteor Client se sincroniza con el servidor
Encontré exactamente el mismo problema, usando los mismos complementos que usaste. Resulta que es un problema de permisos del dispositivo.
El complemento cordova-plugin-geolocation no tiene permiso para ejecutarse en segundo plano y, lo que es más importante, no tiene permiso para rastrear GPS mientras está en segundo plano. Si bien el complemento cordova-plugin-background-mode le permite ejecutar código en segundo plano, no podrá obtener las coordenadas GPS mientras está en segundo plano.
La solución es agregar un complemento que admita obtener los datos de ubicación mientras la aplicación está en segundo plano. Hay varios complementos que admiten esto, incluido el complemento mauron85 / cordova-plugin-background-geolocation (como se sugirió anteriormente). Una alternativa es utilizar el complemento cordova-custom-config que le permite especificar sus propios permisos personalizados. Realmente puede agregar cualquier complemento, siempre que admita servicios de ubicación en segundo plano. No se requiere código adicional.
Puede verificar que tiene los permisos correctos, abriendo la configuración de la aplicación (en iOS) y confirmando que la opción “Siempre” está disponible.