Saltar al contenido principal
Volver a plugins
@capgo/capacitor-ubicación-en-fondo
Tutoriales
por github.com/Cap-go

Ubicación en segundo plano

Ubicación precisa en segundo plano con geofenciamiento nativo iOS y Android, además de transiciones de webhooks

Guía

Tutorial sobre ubicación de fondo

Usando @capgo/ubicación-de-fondo

Ubicación de fondo precisa y geofencimiento nativo para aplicaciones Capacitor en iOS y Android. Utilízalo para transmitir actualizaciones de ubicación precisas, monitorear regiones circulares y entregar transiciones de geofencimiento de entrada/salida a JavaScript o a tu backend.

Instalar

bun add @capgo/background-geolocation
bunx cap sync

¿Qué esta plugin expone?

  • start - Transmite actualizaciones de ubicación de frente o de fondo precisas.
  • stop - Detener el seguimiento activo de ubicación.
  • openSettings - Abrir ajustes nativos cuando los usuarios necesitan corregir permisos de ubicación.
  • setPlannedRoute - Reproducir un sonido nativo cuando el usuario abandona un recorrido planificado.
  • setupGeofencing - Configura los valores por defecto de geofencado nativo y la entrega de webhooks de transición opcionales.
  • addGeofence - Monitorea una región circular de geofencado iOS o Android.
  • removeGeofence / removeAllGeofences - Detener la monitoreo de una o todas las regiones registradas.
  • getMonitoredGeofences - Lista los 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 se ha completado 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. Este debería usarse 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 almacenes, sitios de trabajo, zonas de entrega, campus o áreas de registro con geofencos nativos de iOS y Android. url to let native code POST transition payloads while the WebView is suspended.

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();

para permitir que los __CAPGO_KEEP_0__ POST carguen payloads mientras el WebView está suspendido. ACCESS_BACKGROUND_LOCATION En Android, agregue

<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />

a su manifiesto de la aplicación solo cuando necesite geofencos de fondo: