Search docs/

Geofence

Monitors circular geofences around latitude/longitude coordinates, and sends a notification to the user when the boundary of a geofence is crossed. Notifications can be sent when the user enters and/or exits a geofence. Geofences persist after device reboot. Geofences will be monitored even when the app is not running.

https://github.com/cowbell/cordova-plugin-geofence

Stuck on a Cordova issue?

If you're building a serious project, you can't afford to spend hours troubleshooting. Ionic’s experts offer premium advisory services for both community plugins and premier plugins.

Contact Us Today!

Installation

ionic cordova plugin add cordova-plugin-geofencenpm install @ionic-native/geofence
Ionic Native Enterprise comes with fully supported and maintained plugins from the Ionic Team. Learn More or if you're interested in an enterprise version of this plugin Contact Us

Supported Platforms

  • Android
  • iOS
  • Windows
  • Windows Phone 8

Usage

import { Geofence } from '@ionic-native/geofence/ngx';

...

constructor(private geofence: Geofence) {
  // initialize the plugin
  geofence.initialize().then(
    // resolved promise does not return a value
    () => console.log('Geofence Plugin Ready'),
    (err) => console.log(err)
  )
}

...

private addGeofence() {
  //options describing geofence
  let fence = {
    id: '69ca1b88-6fbe-4e80-a4d4-ff4d3748acdb', //any unique ID
    latitude:       37.285951, //center of geofence radius
    longitude:      -121.936650,
    radius:         100, //radius to edge of geofence in meters
    transitionType: 3, //see 'Transition Types' below
    notification: { //notification settings
        id:             1, //any unique ID
        title:          'You crossed a fence', //notification title
        text:           'You just arrived to Gliwice city center.', //notification body
        openAppOnClick: true //open app when notification is tapped
    }
  }

  this.geofence.addOrUpdate(fence).then(
     () => console.log('Geofence added'),
     (err) => console.log('Geofence failed to add')
   );
}

Transition Types

Transition type specifies whether the geofence should trigger when the user enters and/or leaves the geofence.

Supported values

  • 1: Enter
  • 2: Leave
  • 3: Both

Defining a Geofence

Geofences are defined by an object that is passed to addOrUpdate(). Object properties are:

  • id: Any unique ID for the geofence. This ID is used to remove and update a geofence
  • latitude: Latitude coordinate of the center of the geofence radius
  • longitude: Latitude coordinate of the center of the geofence radius
  • radius: Radius from the center to the edge of the geofence
  • transitionType: Type of geofence transition to monitor for. See 'Transition Types' above
  • notification: Object. Options for defining the notification sent when a geofence is crossed
    • id: Any unique ID
    • title: Notification title
    • text: Notification body
    • openAppOnClick: Boolean. Whether to open the app when the notification is tapped by the user

Troubleshooting

I get compile errors when I run ionic build ios or ionic run ios.

This could be caused by the Cordova project directory in /platforms/ios not being named correctly. Try running ionic cordova platform rm <platform> then run ionic cordova platform add <platform> to recreate the platform directories.