Guide
Tutoriel sur la Localisation de Fond
Utilisation de @capgo/background-geolocation
Localisation de fond précise et geofencing natif pour les applications Capacitor sur iOS et Android. Utilisez-le pour diffuser des mises à jour de localisation précises, surveiller des régions circulaires et transmettre les transitions d'entrée/sortie de geofence vers JavaScript ou votre backend.
Installer
bun add @capgo/background-geolocation
bunx cap sync
Ce que ce Plugin Expose
start- Diffuser des mises à jour de localisation précises en avant-plan ou en arrière-plan.stop- Arrêter la traçabilité active de la localisation.openSettings- Ouvrir les paramètres natifs lorsque les utilisateurs doivent fixer les permissions de localisation.setPlannedRoute- Jouer un son natif lorsque l'utilisateur quitte un itinéraire planifié.setupGeofencing- Configure les paramètres de geofence natifs par défaut et la livraison facultative de webhooks de transition.addGeofence- Surveiller une région de geofence circulaire iOS ou Android.removeGeofence/removeAllGeofences- Arrêter la surveillance d'une ou de toutes les régions enregistrées.getMonitoredGeofences- Listez les identificateurs des régions surveillées.geofenceTransitionlistener - Recevez les événements d'entrée et de sortie tout en faisant fonctionner l'application.geofenceErrorlistener - Gérez les erreurs de surveillance native séparément des événements de transition.
Exemple d'utilisation
start
Pour commencer à écouter les changements de la position du dispositif, appelez cette méthode. Une promesse est renvoyée pour indiquer que la méthode a terminé l'appel. Le callback sera appelé chaque fois qu'une nouvelle position sera disponible, ou si une erreur s'est produite lors de l'appel de cette méthode. N'ayez pas confiance dans la rejet de promesse 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 la position.
import { BackgroundGeolocation } from '@capgo/background-geolocation';
await BackgroundGeolocation.stop();
openSettings
Ouvre la page de paramètres de localisation du dispositif. Utile pour diriger les utilisateurs pour activer les services de localisation ou ajuster les permissions.
import { BackgroundGeolocation } from '@capgo/background-geolocation';
// Direct user to location settings
await BackgroundGeolocation.openSettings();
setPlannedRoute
Joue un fichier audio lorsque l'utilisateur dévie de la route planifiée. Cela devrait être utilisé pour jouer un son (en arrière-plan également, uniquement pour natif).
import { BackgroundGeolocation } from '@capgo/background-geolocation';
await BackgroundGeolocation.setPlannedRoute({
soundFile: "notification.mp3",
route: [[-74.0060, 40.7128], [-118.2437, 34.0522]]
});
Geofencing natif
Surveillez les magasins, les sites de chantier, les zones de livraison, les campus ou les zones de vérification avec des limites de géolocalisation natives iOS et 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();
pour permettre aux requêtes POST de __CAPGO_KEEP_0__ de passer en transition pendant que la vue Web est suspendue. ACCESS_BACKGROUND_LOCATION Sur Android, ajoutez
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
à votre manifeste d'application uniquement lorsque vous avez besoin de la géolocalisation en arrière-plan :
- GitHub: https://github.com/Cap-go/capacitor-background-geolocation/
- https://__CAPGO_KEEP_0__.com/Cap-go/__CAPGO_KEEP_1__-geolocalisation-en-arrière-plan/