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.geofenceTransitionlistener - Recibe eventos de entrada y salida mientras la aplicación está activa.geofenceErrorlistener - 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:
- GitHub: https://github.com/Cap-go/capacitor-background-geolocation/
- https://__CAPGO_KEEP_0__.com/Cap-go/__CAPGO_KEEP_1__-geolocalización-de-fondo/