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.geofenceTransitionlistener - Empfangen Sie Eintritts- und Ausstiegsereignisse, während die App aktiv ist.geofenceErrorlistener - 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
- GitHub: https://github.com/Cap-go/capacitor-Hintergrund-Geolokalisierung/
- Dokumentation: /docs/plugins/background-geolocation/