Guide
Tutoriel sur la géolocalisation de fond
Utilisation de @capgo/background-geolocation
Une géolocalisation précise de fond et une délimitation géographique native pour les applications Capacitor sur iOS et Android. Utilisez-la pour diffuser des mises à jour de localisation précises, surveiller des régions circulaires et transmettre les transitions d'entrée/sortie de la zone géographique vers JavaScript ou votre serveur backend.
Installation
bun add @capgo/background-geolocation
bunx cap sync
Ce que ce plugin expose
start- Diffuser des mises à jour de localisation précises en mode arrière-plan ou en mode avant-plan.stop- Arrêter la traçabilité active de la localisation.openSettings- Ouvrir les paramètres natifs lorsque les utilisateurs doivent résoudre les autorisations de localisation.setPlannedRoute- Jouer un son natif lorsque l'utilisateur quitte une route planifiée.setupGeofencing- Configurer les paramètres de délimitation géographique natifs par défaut et la livraison facultative d'un webhook de transition.addGeofence- Surveiller une région circulaire de délimitation géographique iOS ou Android.removeGeofence/removeAllGeofences- Arrêter la surveillance d'une ou de toutes les régions enregistrées.getMonitoredGeofences- Liste des identificateurs de région surveillée.geofenceTransition- listener - Recevoir les événements d'entrée et de sortie tout en gardant l'application active.geofenceError- listener - Gérer les erreurs de suivi natif séparément des événements de transition.
- Exemple d'utilisation.
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
Arrête les mises à jour de localisation.
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 travail, les zones de livraison, les campus ou les zones de vérification avec des geofences iOS et Android natifs. Ajoutez un 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();
On Android, ajoute ACCESS_BACKGROUND_LOCATION à votre manifeste d'application que lorsque vous avez besoin de la géolocalisation en arrière-plan :
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
Référence complète
- GitHub : https://github.com/Cap-go/capacitor-geolocalisation-en-arrière-plan/
- Documentation : /docs/plugins/geolocalisation-en-arrière-plan/
Continuez de l'étape Utilisation de @capgo/geolocalisation-en-arrière-plan
Si vous utilisez Utilisation de @capgo/geolocalisation-en-arrière-plan pour planifier le travail du plugin natif, connectez-l’avec @capgo/geolocalisation-en-arrière-plan pour les détails d'implémentation dans @capgo/geolocalisation-en-arrière-plan, Démarrage pour les détails d'implémentation dans Getting Started, Capgo Répertoire des plugins pour le flux de travail du produit dans Capgo Répertoire des plugins, Capacitor Plugins par Capgo pour les détails d'implémentation dans Capacitor Plugins par Capgo, et Ajouter ou Mettre à Jour les Plugins pour les détails d'implémentation dans Ajouter ou Mettre à Jour les Plugins.