Saltare al contenuto principale

Geolocalizzazione di background Plugin Capacitor

Tracciamento di posizione di background preciso con geofencing nativo iOS e Android e webhook di transizione

Installa

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

Guida

Come utilizzare la Geolocalizzazione in background in Capacitor

Utilizzare @capgo/background-geolocation

Geolocalizzazione di background precisa 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.

Installa

bun add @capgo/background-geolocation
bunx cap sync

Cos'è esposto da questo plugin

  • start - Ricevi aggiornamenti di posizione di foreground o background precisi.
  • 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 un percorso pianificato.
  • setupGeofencing - Configurare le impostazioni di geofencing nativo e la consegna facoltativa 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 identificatori delle regioni monitorate.
  • geofenceTransition - listener - Ricevi eventi di ingresso e uscita mentre l'app è attiva.
  • geofenceError - listener - Gestisci gli errori di monitoraggio nativo separatamente dagli eventi di transizione.

- Esempio di utilizzo.

start

To start listening for changes in the device's location, call this method. A Promise is returned to indicate that it finished the call. The callback will be called every time a new location is available, or if there was an error when calling this method. Don't rely on promise rejection for this.

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

- Ferma gli aggiornamenti della posizione.

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

await BackgroundGeolocation.stop();

openSettings

Apri la pagina di impostazioni della posizione del dispositivo. Utile per guidare gli utenti a abilitare i servizi di posizione o adattare le autorizzazioni.

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

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

setPlannedRoute

- Riproduce un file audio quando l'utente si allontana dalla rotta pianificata. Questo dovrebbe essere utilizzato per riprodurre un suono (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 geofence iOS e Android nativi. 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();

- Su Android, aggiungi ACCESS_BACKGROUND_LOCATION aggiungere al tuo manifesto dell'app solo quando hai bisogno di geofencing in background:

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

Riferimento completo

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

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

FAQ

Background Geolocation plugin FAQ

Come posso installare il plugin di geolocalizzazione di background in un'app Capacitor?

Esegui &quot;bun add @capgo/background-geolocation&quot; (o &quot;npm install @capgo/background-geolocation&quot;), quindi esegui &quot;bunx cap sync&quot; affinché i progetti iOS e Android acquisiscano il nativo code. Importalo da &quot;@capgo/background-geolocation&quot; nella tua app code.

Funziona @capgo/background-geolocation con React, Vue e Angular?

Sì. Il plugin di geolocalizzazione di background è un pacchetto Capacitor, quindi funziona con qualsiasi framework web che esegue all'interno di Capacitor, compresi Ionic, React, Vue, Angular, Svelte e JavaScript puro.

Qual è la versione di Capacitor supportata da @capgo/background-geolocation?

I plugin Capgo seguono la versione maggiore di Capacitor: utilizza la versione maggiore del plugin che corrisponde alla tua versione maggiore di Capacitor (ad esempio plugin v8 con Capacitor 8). La tabella di compatibilità nel README di GitHub elenca le versioni mantenute.

È @capgo/background-geolocation gratuito e open source?

Yes. Il code di origine è pubblico su GitHub a https://github.com/Cap-go/capacitor-background-geolocation/ e il pacchetto è gratuito per l'installazione da npm. Sono graditi i rapporti di bug e le richieste di pull.

Posso aggiornare il code che utilizza la geolocalizzazione di background senza una revisione dell'App Store?

L'installazione o l'aggiornamento del plugin modifica il codice nativo code, quindi richiede una nuova costruzione dello store. Dopo di che, le modifiche JavaScript, HTML e CSS che chiamano il plugin possono essere distribuite immediatamente con gli aggiornamenti Capgo in tempo reale.

Invia le modifiche a Background Geolocation senza attendere la revisione dell'app

Una volta che il plugin è nel tuo store build, Capgo le aggiornamenti live inviano le tue modifiche JavaScript, HTML e CSS ai utenti in pochi minuti.

Avvia con Capgo