Guía
Cómo usar la ubicación de fondo en Capacitor
Usando @capgo/background-geolocation
Geolocalización de fondo precisa y geofenciamiento nativo para aplicaciones Capacitor en iOS y Android. Utilízalo para transmitir actualizaciones de ubicación precisas, monitorear regiones circulares y entregar transiciones de entrada/salida de geofenciamiento a JavaScript o a su servidor.
Instalar
bun add @capgo/background-geolocation
bunx cap sync
¿Qué expone este plugin?
start- Transmite actualizaciones de ubicación de fondo o de frente precisas.stop- Detener el seguimiento de ubicación activo.openSettings- Abrir ajustes nativos cuando los usuarios necesiten corregir permisos de ubicación.setPlannedRoute- Reproducir un sonido nativo cuando el usuario abandona un recorrido planificado.setupGeofencingConfigura los valores predeterminados de geofence nativa y la entrega opcional de webhook de transición.addGeofence- Monitorea una región circular de geofencado iOS o Android.removeGeofence/removeAllGeofences- Detener la monitoreo de una o todas las regiones registradas.getMonitoredGeofences- Listar identificadores de regiones monitoreadas.geofenceTransition- listener - Recibe eventos de entrada y salida mientras la aplicación está activa.geofenceError- listener - Maneja errores de monitoreo nativo por separado de eventos de transición.
- Ejemplo de uso
start
- Para empezar a escuchar cambios en la ubicación del dispositivo, llama a este método. Se devuelve una Promesa para indicar que terminó la llamada. El callback se llamará cada vez que esté disponible una nueva ubicación, o si hubo un error al llamar a este método. No confíes en la rechazación de la promesa para esto.
import { BackgroundGeolocation } from '@capgo/background-geolocation';
await BackgroundGeolocation.start(
{
backgroundMessage: "App is using your location in the background",
backgroundTitle: "Location Service",
requestPermissions: true,
stale: false,
distanceFilter: 10
},
(location, error) => {
if (error) {
console.error('Location error:', error);
return;
}
if (location) {
console.log('New location:', location.latitude, location.longitude);
}
}
);
stop
- Detiene actualizaciones de ubicación.
import { BackgroundGeolocation } from '@capgo/background-geolocation';
await BackgroundGeolocation.stop();
openSettings
- Abre la página de ajustes de ubicación del dispositivo. Útil para dirigir a los usuarios a habilitar servicios de ubicación o ajustar permisos.
import { BackgroundGeolocation } from '@capgo/background-geolocation';
// Direct user to location settings
await BackgroundGeolocation.openSettings();
setPlannedRoute
- Reproduce un archivo de sonido cuando el usuario se desvía del recorrido planificado. Esto se debe utilizar para reproducir un sonido (en segundo plano también, solo para nativo).
import { BackgroundGeolocation } from '@capgo/background-geolocation';
await BackgroundGeolocation.setPlannedRoute({
soundFile: "notification.mp3",
route: [[-74.0060, 40.7128], [-118.2437, 34.0522]]
});
- Geofencado nativo
Monitoree tiendas, sitios de trabajo, zonas de entrega, campus o áreas de registro con geofencos nativos de iOS y Android. url Permitir a code enviar payloads de transición nativas mientras el WebView está suspendido.
import { BackgroundGeolocation } from '@capgo/background-geolocation';
await BackgroundGeolocation.setupGeofencing({
url: 'https://api.example.com/geofences',
notifyOnEntry: true,
notifyOnExit: true,
payload: { userId: '123' },
});
await BackgroundGeolocation.addGeofence({
identifier: 'warehouse',
latitude: 40.7128,
longitude: -74.006,
radius: 200,
});
const listener = await BackgroundGeolocation.addListener(
'geofenceTransition',
(event) => console.log(event.identifier, event.transition),
);
const errorListener = await BackgroundGeolocation.addListener(
'geofenceError',
(event) => console.error(event.identifier, event.message),
);
await BackgroundGeolocation.removeGeofence({ identifier: 'warehouse' });
await listener.remove();
await errorListener.remove();
En Android, agregar ACCESS_BACKGROUND_LOCATION al manifiesto de tu aplicación solo cuando necesites geofencos de fondo:
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
Referencia completa
- GitHub: https://github.com/Cap-go/capacitor-geolocalización-de-fondo/
- Documentación: /docs/plugins/geolocalización-de-fondo/
Sigue adelante desde Usando @capgo/geolocalización-de-fondo
Si estás utilizando Usando @capgo/geolocalización-de-fondo para planificar el trabajo de plugin nativo, conectalo con @capgo/geolocalización de fondo para el detalle de implementación en @capgo/geolocalización de fondo Getting Started para el detalle de implementación en Iniciación Directorio de Plugins de Capgo para el flujo de trabajo del producto en Directorio de Plugins de Capgo Plugins de Capacitor por Capgo para el detalle de implementación en Plugins de Capacitor por Capgo, y Agregar o Actualizar Plugins para el detalle de implementación en Agregar o Actualizar Plugins