Saltar al contenido principal
@capgo/background-geolocation Ubicación Código abierto

Geolocalización en segundo plano plugin Capacitor

Rastreo de ubicación preciso en segundo plano con geofencing nativo en iOS y Android, más webhooks de transición

Instalar

bun add @capgo/background-geolocation bunx cap sync
npm, pnpm o yarn
  • npm install @capgo/background-geolocation
  • pnpm add @capgo/background-geolocation
  • yarn add @capgo/background-geolocation

Guía

Cómo usar Background Geolocation en Capacitor

Usando @capgo/background-geolocation

Geolocalización en segundo plano precisa y geofencing nativo para apps de Capacitor en iOS y Android. Úsalo para transmitir actualizaciones de ubicación exactas, monitorear regiones circulares y enviar eventos de entrada/salida de geofence a JavaScript o a tu backend.

Instalar

bun add @capgo/background-geolocation
bunx cap sync

Lo que expone este plugin

  • start - Recibe actualizaciones de ubicación precisas en primer plano o en segundo plano.
  • stop - Detén el seguimiento de ubicación activo.
  • openSettings - Abre los ajustes nativos cuando el usuario deba corregir los permisos de ubicación.
  • setPlannedRoute - Reproduce un sonido nativo si el usuario se sale de la ruta planificada.
  • setupGeofencing - Configura los valores predeterminados de geofencing nativo y el envío opcional de webhooks de transición.
  • addGeofence - Monitoriza una región de geofence circular en iOS o Android.
  • removeGeofence / removeAllGeofences - Deja de monitorizar una o todas las regiones registradas.
  • getMonitoredGeofences - List monitored region identifiers.
  • geofenceTransition listener - Recibe eventos de entrada y salida mientras la app está activa.
  • geofenceError listener - Gestiona los errores de monitoreo nativo de forma independiente a los eventos de transición.

Ejemplo de uso

start

Llama a este método para empezar a escuchar cambios en la ubicación del dispositivo. Devuelve una Promise para indicar que la llamada finalizó. El callback se ejecutará cada vez que haya una nueva ubicación disponible o si ocurre un error al llamar al método. No dependas de la rejección de la promise 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 las 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 guiar a los usuarios a activar los 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 de la ruta planificada. Debe usarse para emitir un sonido (también en segundo plano, solo en nativo).

import { BackgroundGeolocation } from '@capgo/background-geolocation';

await BackgroundGeolocation.setPlannedRoute({
  soundFile: "notification.mp3",
  route: [[-74.0060, 40.7128], [-118.2437, 34.0522]]
});

Geofencing nativo

Monitorea tiendas, obras, zonas de entrega, campus o áreas de check-in con geofences nativas para iOS y Android. Añade un HTTP o HTTPS url para permitir que el code nativo envíe payloads de transición POST mientras la WebView está suspendida.

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, añade ACCESS_BACKGROUND_LOCATION a tu app manifest solo cuando necesites geofencing en segundo plano:

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

Referencia completa

Continuar desde Usar @capgo/background-geolocation

Si estás usando Usando @capgo/background-geolocation para planificar el trabajo con plugins nativos, conéctalo con @capgo/background-geolocation para los detalles de implementación en @capgo/background-geolocation, Primeros pasos para los detalles de implementación en Primeros pasos, Directorio de plugins de Capgo para el flujo de trabajo del producto en Capgo Plugin Directory, Plugins de Capacitor por Capgo para los detalles de implementación en Capacitor Plugins de Capgo, y Añadir o actualizar plugins para los detalles de implementación al añadir o actualizar plugins.

FAQ

FAQ del plugin Background Geolocation

¿Cómo instalo el plugin Background Geolocation en una app Capacitor?

Ejecuta "bun add @capgo/background-geolocation" (o "npm install @capgo/background-geolocation"), luego ejecuta "bunx cap sync" para que los proyectos de iOS y Android detecten el code nativo. Impórtalo desde "@capgo/background-geolocation" en el code de tu app.

¿Funciona @capgo/background-geolocation con React, Vue y Angular?

Sí. Background Geolocation es un paquete Capacitor, por lo que funciona con cualquier framework web que corra dentro de Capacitor, incluyendo Ionic, React, Vue, Angular, Svelte y JavaScript puro.

¿Qué versión de Capacitor es compatible con @capgo/background-geolocation?

Los plugins de Capgo siguen la versión mayor de Capacitor: usa la versión mayor del plugin que coincida con la versión mayor de tu Capacitor (por ejemplo, el plugin v8 con Capacitor 8). La tabla de compatibilidad del README de GitHub lista las versiones mantenidas.

¿Es @capgo/background-geolocation gratuito y open source?

Sí. El código fuente de code es público en GitHub en https://github.com/Cap-go/capacitor-background-geolocation/ y el paquete es gratuito en npm. Los reportes de bugs y pull requests son bienvenidos.

¿Puedo actualizar code que usa Background Geolocation sin pasar por la revisión de la App Store?

Instalar o actualizar el plugin cambia el code nativo, así que requiere un nuevo build para la tienda. Después, los cambios de JavaScript, HTML y CSS que llamen al plugin se pueden publicar al instante con las live updates de Capgo.

Lanza cambios de Background Geolocation sin esperar la revisión de la app

Una vez que el plugin esté en tu store build, Capgo live updates envía tus cambios de JavaScript, HTML y CSS a los usuarios en minutos.

Empieza con Capgo