Ke halaman utama
Kembali ke plugin
@capgo/capacitor-background-geolocation
Tutorial
oleh github.com/Cap-go

Geolokasi Latar Belakang

Pengukuran lokasi latar belakang yang akurat dengan geofencing native iOS dan Android serta webhooks transisi

Petunjuk

Tutorial tentang Lokasi Latar Belakang

Menggunakan @capgo/background-geolocation

Lokasi latar belakang yang akurat dan penggelembungan geografis asli untuk aplikasi Capacitor di iOS dan Android. Gunakan untuk mengalirkan pembaruan lokasi yang tepat, memantau wilayah lingkaran, dan mengirimkan transisi masuk/keluar geofence ke JavaScript atau backend Anda.

Pasang

bun add @capgo/background-geolocation
bunx cap sync

Apa yang Dapat Diketahui Plugin Ini

  • start - Streamkan lokasi depan atau belakang dengan akurasi yang tepat.
  • stop - Berhentikan pemantauan lokasi aktif.
  • openSettings - Buka pengaturan native ketika pengguna memerlukan izin lokasi.
  • setPlannedRoute - Mainkan suara native ketika pengguna meninggalkan rute yang direncanakan.
  • setupGeofencing - Konfigurasi default geofence native dan pengiriman webhook optional.
  • addGeofence - Pantau wilayah geofence bulat iOS atau Android.
  • removeGeofence / removeAllGeofences - Berhentikan pemantauan satu atau semua wilayah yang terdaftar.
  • getMonitoredGeofences - Daftar identifikasi wilayah yang dipantau.
  • geofenceTransition listener - Terima event masuk dan keluar sementara aplikasi aktif.
  • geofenceError listener - Tangani kesalahan pemantauan native secara terpisah dari event transisi.

Contoh Penggunaan

start

Untuk memulai mendengarkan perubahan lokasi perangkat, panggil metode ini. Sebuah Promise dikembalikan untuk menunjukkan bahwa panggilan selesai. Callback akan dipanggil setiap kali lokasi baru tersedia, atau jika terjadi kesalahan saat memanggil metode ini. Jangan bergantung pada penolakan promise untuk ini.

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

Menghentikan pembaruan lokasi.

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

await BackgroundGeolocation.stop();

openSettings

Membuka halaman pengaturan lokasi perangkat.

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

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

setPlannedRoute

Bermanfaat untuk mengarahkan pengguna untuk mengaktifkan layanan lokasi atau menyesuaikan izin.

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

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

Mengeluarkan suara file ketika pengguna menyimpang dari rute yang direncanakan. Ini harus digunakan untuk memainkan suara (di latar belakang juga, hanya untuk native).

Geofencing native 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();

untuk memungkinkan native __CAPGO_KEEP_0__ mengirimkan payload transisi POST saat WebView dihentikan. ACCESS_BACKGROUND_LOCATION Pada Android, tambahkan

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

ke dalam manifesto aplikasi hanya ketika Anda memerlukan geofencing latar belakang:

Teruskan dari Menggunakan @capgo/background-geolocation

Jika Anda menggunakan Menggunakan @capgo/background-geolocation untuk merencanakan pekerjaan plugin native, hubungkannya dengan @capgo/background-geolocation untuk detail implementasi di @capgo/background-geolocation, Mengawali untuk detail implementasi di Mengawali, Direktori Plugin @Capgo untuk alur kerja produk di Direktori Plugin @Capgo, Plugin @Capacitor oleh @Capgo untuk detail implementasi di Plugin @Capacitor oleh @Capgo, dan Menambahkan atau Mengupdate Plugin untuk detail implementasi di Menambahkan atau Mengupdate Plugin.