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
- GitHub: https://github.com/Cap-go/capacitor-geolocalizzazione-di-fondo/
- Documentazione: /docs/plugins/geolocalizzazione-di-fondo/
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.