Zum Hauptinhalt springen
Zurück zu Plugins
@capgo/capacitor-Hintergrund-Ortung
Tutorial
von github.com/Cap-go

Hintergrund-Ortung

Genauere Hintergrund-Ortung mit nativer iOS- und Android-Geofencing sowie Übergangs-Webhooks

Richtlinie

Tutorial zur Hintergrund-Geolokalisierung

Verwendung von @capgo/background-geolocation

Genauere Hintergrund-Geolokalisierung und native Geofencing für Capacitor-Apps auf iOS und Android. Verwenden Sie es, um präzise Standortaktualisierungen zu streamen, kreisförmige Regionen zu überwachen und geofence-Eintritts-/Ausstiegsübergänge an JavaScript oder Ihren Backend zu liefern.

Installieren

bun add @capgo/background-geolocation
bunx cap sync

Was diese Erweiterung offenlegt

  • start - Stream genaue Vordergrund- oder Hintergrund-Ortungsaktualisierungen.
  • stop - Aktives Ortungsverfolgung beenden.
  • openSettings - Öffnen Sie native Einstellungen, wenn Benutzer die Standortberechtigungen korrigieren müssen.
  • setPlannedRoute - Spielen Sie eine native Tondatei, wenn der Benutzer eine geplante Route verlässt.
  • setupGeofencing - Konfigurieren Sie native Standortgrenzwerte und optionalen Übergabe-Webhook-Delivery.
  • addGeofence - Überwachen Sie einen kreisförmigen iOS- oder Android-Standortbereich.
  • removeGeofence / removeAllGeofences - Beenden Sie die Überwachung eines oder aller registrierten Bereiche.
  • getMonitoredGeofences - Auflisten Sie die überwachten Bereichs-Identifikatoren.
  • geofenceTransition listener - Empfangen Sie Eintritts- und Ausstiegsereignisse, während die App aktiv ist.
  • geofenceError listener - Behandeln Sie native Überwachungsfehler separat von Übergabeereignissen.

Beispielverwendung

start

Um mit der Änderung der Geräteposition zu beginnen, rufen Sie diese Methode auf. Ein Promise wird zurückgegeben, um anzugeben, dass die Anrufung abgeschlossen ist. Der Callback wird aufgerufen, sobald eine neue Position verfügbar ist, oder wenn bei der Aufrufung dieser Methode ein Fehler aufgetreten ist. Verlassen Sie sich nicht auf die Ablehnung des Versprechens für dies.

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

Stellt Standortaktualisierungen ein.

import { BackgroundGeolocation } from '@capgo/background-geolocation';

await BackgroundGeolocation.stop();

openSettings

Öffnet die Standorteinstellungen der Geräte. Nützlich für die Lenkung von Benutzern, Standortdienste zu aktivieren oder Berechtigungen anzupassen.

import { BackgroundGeolocation } from '@capgo/background-geolocation';

// Direct user to location settings
await BackgroundGeolocation.openSettings();

setPlannedRoute

Spielt ein Tonfile ab, wenn der Benutzer sich von der geplanten Route entfernt. Dies sollte verwendet werden, um einen Ton abzuspielen (im Hintergrund auch, nur für native).

import { BackgroundGeolocation } from '@capgo/background-geolocation';

await BackgroundGeolocation.setPlannedRoute({
  soundFile: "notification.mp3",
  route: [[-74.0060, 40.7128], [-118.2437, 34.0522]]
});

Native Standortgrenzen

Überwachen Sie Lagerhäuser, Baustellen, Lieferzonen, Campusse oder Check-in-Bereiche mit nativen iOS- und Android-Grenzen. 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();

Lassen Sie native __CAPGO_KEEP_0__ POST-Übergabe-Pakete während der Suspendierung des WebView zu. ACCESS_BACKGROUND_LOCATION Fügen Sie auf Android nur dann Ihrem App-Manifest hinzu:

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

Vollständige Referenz