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.
Installation#
- Capacitor
- Cordova
- Enterprise
$ npm install cordova-plugin-geofence $ npm install @ionic-native/geofence $ ionic cap sync$ ionic cordova plugin add cordova-plugin-geofence $ npm install @ionic-native/geofence Ionic 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#
React#
Learn more about using Ionic Native components in React
Angular#
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.