Guide
Tutoriel sur la géolocalisation de fond
Utilisation de @capgo/background-geolocation
Une géolocalisation de fond précise et un tamponnage géographique 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 tamponnage 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 localisation.openSettings- Ouvrir les paramètres natifs lorsque les utilisateurs doivent fixer les autorisations de localisation.setPlannedRoute- Jouer un son natif lorsque l'utilisateur quitte un itinéraire planifié.setupGeofencing- Configurer les paramètres de tamponnage géographique natif par défaut et la livraison facultative d'un webhook de transition.addGeofence- Surveiller une région circulaire de tamponnage géographique iOS ou Android.removeGeofence/removeAllGeofences- Arrêter la surveillance d'une ou de toutes les régions enregistrées.getMonitoredGeofences- Liste les identifiants 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 suivi natif séparément des événements de transition.
Exemple d'utilisation
start
Pour commencer à écouter les changements de la localisation du dispositif, appelez cette méthode. Un Promesse est retourné pour indiquer que la méthode a terminé l'appel. Le callback sera appelé chaque fois qu'une nouvelle localisation sera disponible, ou si une erreur est survenue lors de l'appel de cette méthode. N'ayez pas recours à la rejet de la 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 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 d'entrée avec des geofences iOS et Android natifs. Ajoutez un HTTP ou HTTPS 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, ajoutez ACCESS_BACKGROUND_LOCATION seulement dans votre manifeste d'application lorsque vous avez besoin de la géolocalisation de fond :
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
Référence complète
- GitHub: https://github.com/Cap-go/capacitor-geolocalisation-de-fond/
- Docs : /docs/plugins/geolocalisation-de-fond/
Continuez à partir de l'utilisation de @capgo/geolocalisation-de-fond
Si vous utilisez En utilisant @capgo/geolocalisation-de-fond pour planifier le travail du plugin natif, connectez-le avec @capgo/geolocalisation-de-fond pour les détails d'implémentation dans @capgo/geolocalisation-de-fond, Démarrage Détails d'implémentation dans Getting Started, Répertoire de Capgo Plugin Détails du flux de travail du produit dans Capgo Plugin Directory, Capacitor Plugins par Capgo Détails d'implémentation dans Capacitor Plugins par Capgo, et Ajouter ou Mettre à Jour les Plugins Détails d'implémentation dans Ajouter ou Mettre à Jour les Plugins.