Vai alla sezione principale
Indietro ai plugin
@capgo/capacitor-background-geolocation
Tutorial
@capgo/capacitor-background-geolocation

Geolocalizzazione in background

Rilevamento della posizione in background preciso con geofencing nativo per iOS e Android e webhook di transizione

Guida

Tutorial sulla geolocalizzazione in background

Testa sul dispositivo

Scarica l'app Capgo, poi scansa il codice QR code.

Background Geolocation plugin preview QR code

Usare @capgo/background-geolocation

Geolocalizzazione precisa in background e geofencing nativo per le app Capacitor su iOS e Android. Utilizzalo per streamare aggiornamenti di posizione precisi, monitorare regioni circolari e inviare transizioni di ingresso/uscita di geofence al JavaScript o al backend.

Installare

bun add @capgo/background-geolocation
bunx cap sync

Cosa questo plugin espone

  • start - Streamare aggiornamenti di posizione precisi in background o in primo piano.
  • stop - Fermare la tracciatura attiva della posizione.
  • openSettings - Aprire le impostazioni native quando gli utenti devono risolvere i permessi di posizione.
  • setPlannedRoute - Riprodurre un suono nativo quando l'utente lascia una rotta pianificata.
  • setupGeofencing - Configurare le impostazioni di geofencing nativo e l'invio facoltativo di webhook di transizione.
  • addGeofence - Monitorare una regione circolare di geofencing iOS o Android.
  • removeGeofence / removeAllGeofences - Fermare la monitorazione di una o tutte le regioni registrate.
  • getMonitoredGeofences - Elenco degli identificatori delle regioni monitorate.
  • geofenceTransition listener - Ricevi eventi di ingresso e uscita mentre l'app è attiva.
  • geofenceError listener - Gestisci gli errori di monitoraggio nativi separatamente dagli eventi di transizione.

Esempio di utilizzo

start

Iniziare a ricevere notifiche delle modifiche alla posizione del dispositivo, chiamare questo metodo. Viene restituita una promessa per indicare che è terminata la chiamata. Il callback verrà chiamato ogni volta che sarà disponibile una nuova posizione, o se è stato verificato un errore durante la chiamata di questo metodo. Non affidarti alla rifiutazione della promessa per questo.

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

Smette gli aggiornamenti della posizione.

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

await BackgroundGeolocation.stop();

openSettings

Apre la pagina di impostazioni della posizione del dispositivo. Utile per dirigere gli utenti a consentire i servizi di posizione o regolare le autorizzazioni.

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

// Direct user to location settings
await BackgroundGeolocation.openSettings();

setPlannedRoute

Gioca un file audio quando l'utente si allontana dalla rotta pianificata. Questo dovrebbe essere utilizzato per riprodurre un suono (anche in background, solo per nativo).

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

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

Geofencing nativo

Monitora negozi, siti di lavoro, zone di consegna, campus o aree di check-in con geofenci nativi iOS e Android. Aggiungi un HTTP o HTTPS url per consentire ai nativi code di inviare payload di transizione POST mentre il WebView è sospeso.

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

On Android, aggiungi ACCESS_BACKGROUND_LOCATION per aggiungere la geolocalizzazione di background al tuo manifesto dell'app solo quando ne hai bisogno:

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

Riferimento completo

Continua da Utilizzo di @capgo/geolocalizzazione-di-background

Se stai utilizzando Utilizzo di @capgo/geolocalizzazione-di-background per pianificare il lavoro del plugin nativo, connettilo con @capgo/geolocalizzazione-di-background per i dettagli di implementazione in @capgo/geolocalizzazione-di-background, Avvio per i dettagli di implementazione in Getting Started, Capgo Directory dei Plugin per il flusso di lavoro del prodotto in Capgo Directory dei Plugin, Capacitor Plugin da Capgo per i dettagli di implementazione in Capacitor Plugin da Capgo, e Aggiungere o Aggiornare Plugin per i dettagli di implementazione in Aggiungere o Aggiornare Plugin.