Allez directement au contenu principal
Retour aux plugins
@capgo/capacitor-background-geolocation
Tutoriel
par github.com/Cap-go

Localisation de fond

Suivi précis de la localisation de fond avec la géolocalisation native iOS et Android ainsi que les webhooks de transition

Guide

Tutoriel sur la géolocalisation de fond

Utilisation de @capgo/background-geolocation

Géolocalisation de fond précise et détection de zone géographique native 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 zone géographique vers JavaScript ou votre serveur.

Installer

bun add @capgo/background-geolocation
bunx cap sync

Ce plugin expose

  • start - Recevez des mises à jour de localisation précises en avant-plan ou en arrière-plan.
  • stop - Arrêtez la suivi actif de la localisation.
  • openSettings - Ouvrez les paramètres natifs lorsque les utilisateurs doivent corriger les autorisations de localisation.
  • setPlannedRoute - Jouez un son natif lorsque l'utilisateur quitte un itinéraire planifié.
  • setupGeofencing - Configurez les paramètres de geofence natifs par défaut et la livraison facultative d'une notification de transition.
  • addGeofence - Suivez une région circulaire de geofence iOS ou Android.
  • removeGeofence / removeAllGeofences - Arrêtez la surveillance d'une ou de toutes les régions enregistrées.
  • getMonitoredGeofences - Affichez les identificateurs des régions surveillées.
  • geofenceTransition listener - Recevez des événements d'entrée et de sortie tout en faisant tourner l'application.
  • geofenceError listener - 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 qu'il 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 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 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 de son 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

Surveille 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 pour permettre aux natifs code d'envoyer des payloads de transition POST pendant que le WebView est suspendu.

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 à votre manifeste d'application uniquement lorsque vous avez besoin de geofencing en arrière-plan :

<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />

Référence complète

Continuez à partir de l'utilisation de @capgo/background-geolocation

Si vous utilisez L'utilisation de @capgo/background-geolocation pour planifier le travail de plugin natif, connectez-le à @capgo/background-geolocation pour les détails d'implémentation dans @capgo/background-geolocation, Démarrage pour les détails d'implémentation dans Démarrage, 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.