Lewati ke konten utama
menjadi.dev
Mobile

Geofencing

Trigger event otomatis saat user masuk atau keluar area geografis.

Geofencing menggunakan GPS device untuk mendeteksi saat user masuk atau keluar area virtual tertentu (radius dalam meter). expo-location mendukung geofencing via startGeofencingAsync dengan array region (identifier, latitude, longitude, radius, notifyOnEnter, notifyOnExit). TaskManager digunakan untuk mendefinisikan background handler yang menerima event enter/exit. Batasan: iOS maksimum 20 regions, radius minimum ~100m. Android maksimum 100 regions. Tidak real-time — ada delay beberapa detik hingga menit. Baterai relatif efisien karena OS yang monitor, bukan app polling. Use cases: check-in otomatis di kantor, reminder saat dekat toko, home automation, delivery tracking.

Contoh Kode

import * as Location from "expo-location";
import * as TaskManager from "expo-task-manager";

TaskManager.defineTask("geofence", ({ data }) => {
  const { eventType, region } = data;
  console.log(`${eventType} region ${region.identifier}`);
});

await Location.startGeofencingAsync("geofence", [{
  identifier: "kantor",
  latitude: -6.2,
  longitude: 106.8,
  radius: 200,
  notifyOnEnter: true,
}]);

Istilah Terkait