Guide
Comment utiliser Background Geolocation dans Capacitor
Utiliser @capgo/background-geolocation
Géolocalisation en arrière-plan précise et geofencing natif pour les apps Capacitor sur iOS et Android. Utilisez-le pour streamer des mises à jour de localisation précises, surveiller des zones circulaires et envoyer les transitions d'entrée/sortie de geofence au JavaScript ou à votre backend.
Installer
bun add @capgo/background-geolocation
bunx cap sync
Ce que ce plugin expose
start- Recevez des mises à jour de localisation précises, en foreground ou en background.stop- Arrêtez le suivi de localisation actif.openSettings- Ouvrez les réglages natifs pour aider les utilisateurs à corriger les permissions de localisation.setPlannedRoute- Jouez un son natif lorsque l'utilisateur quitte l'itinéraire prévu.setupGeofencing- Configurez les paramètres natifs de geofencing et l'envoi optionnel de webhooks de transition.addGeofence- Surveillez une zone de geofencing circulaire sur iOS ou Android.removeGeofence/removeAllGeofences- Arrêtez la surveillance d'une ou de toutes les zones enregistrées.getMonitoredGeofences- Listez les identifiants des zones surveillées.geofenceTransitionlistener - Recevez les événements d'entrée et de sortie lorsque l'app est active.geofenceErrorlistener - Gérez les erreurs de surveillance natives séparément des événements de transition.
Exemple d'utilisation
start
Appelez cette méthode pour commencer à écouter les changements de localisation de l'appareil. Une Promise est renvoyée pour indiquer la fin de l'appel. Le callback sera exécuté chaque fois qu'une nouvelle position est disponible, ou en cas d'erreur lors de l'appel. Ne vous reposez pas sur le rejet de la Promise pour cela.
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
Arrête les mises à jour de localisation.
import { BackgroundGeolocation } from '@capgo/background-geolocation';
await BackgroundGeolocation.stop();
openSettings
Ouvre la page des paramètres de localisation de l'appareil. Utile pour guider les utilisateurs vers l'activation des services de localisation ou l'ajustement des permissions.
import { BackgroundGeolocation } from '@capgo/background-geolocation';
// Direct user to location settings
await BackgroundGeolocation.openSettings();
setPlannedRoute
Joue un fichier sonore lorsque l'utilisateur s'écarte de l'itinéraire prévu. À utiliser pour jouer un son (également en arrière-plan, uniquement pour le natif).
import { BackgroundGeolocation } from '@capgo/background-geolocation';
await BackgroundGeolocation.setPlannedRoute({
soundFile: "notification.mp3",
route: [[-74.0060, 40.7128], [-118.2437, 34.0522]]
});
Géofencing natif
Surveillez les stores, les chantiers, les zones de livraison, les campus ou les zones de check-in avec des geofences natifs iOS et Android. Ajoutez un HTTP ou HTTPS url pour permettre au code natif d'envoyer des payloads de transition POST pendant la suspension de la WebView.
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();
Sur Android, ajoutez ACCESS_BACKGROUND_LOCATION to your app manifest only when you need background geofencing:
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
Référence complète
- GitHub : https://github.com/Cap-go/capacitor-background-geolocation/
- Docs : /docs/plugins/background-geolocation/
Continuer à partir de Utiliser @capgo/background-geolocation
Si vous utilisez Utiliser @capgo/background-geolocation pour planifier le travail sur les plugins natifs, connectez-l’à @capgo/background-geolocation pour les détails d'implémentation dans @capgo/background-geolocation, Prise en main pour les détails d'implémentation dans Getting Started Capgo Répertoire des plugins pour le workflow produit dans Capgo Plugin Directory, Plugins Capacitor par Capgo pour les détails d'implémentation dans les plugins Capacitor par Capgo, et Ajouter ou mettre à jour des plugins pour les détails d'implémentation dans Adding or Updating Plugins.