React Native Background Geolocation

The most sophisticated, battery-conscious background location-tracking & geofencing SDK for iOS and Android

Buy Now
Get it on Google Play← Try the Demo!
The original and best

The most sophisticated, Battery-conscious Background Location-tracking.

A highly configurable, cross-platform background location-tracking plugin implementing the latest native APIs. Backed by over four years of R&D and constant support, the plugin performs in a wide variety of applications, such as fleet-tracking, fitness, security and emergency / disaster-response

Read our docs
Battery efficienct

Superior battery efficiency with accelerometer-based motion-detection.

The plugin samples the accelerometer periodically while tracking in order to power-down the GPS as soon as the device is determined to be stationary, while stopped at a traffic light, for example.

Philosophy of Operation


Geofencing

Infinite Geofencing

Background Geolocation's geofencing system is the most advanced available, allowing you to monitor unlimited Geofences! Geofences can fire on ENTER, EXIT and DWELL transitions and can optionally persist on device reboot or application terminate.

Read our docs

Polygon Geofencing

In addition to traditional Circular Geofences, the Background Geolocation SDK now supports Polygon Geofences of any geometry and size.

Read our docs

Native HTTP Layer

The plugin hosts its own flexible HTTP layer.

  • Batch requests supported for sending the entire SQLite database to your server in a single HTTP request.
  • Automatic retry on server failure.
  • Auto-sync each request to your server as they come in or manually via the Javascript API.
  • Configurable HTTP
    url
    ,
    params
    ,
    headers
    and
    method
    (POST, PUT).
Read our docs
Native peristence layer

SQLite persistence on both iOS & Android.

Each received location is immmediately persisted in a native SQLite database. The plugin provides a Javascript API for retrieving the database, optionally syncing to your server and clearing the database.

Read our docs
Scheduling

Scheduled Location Tracking

The plugin can be configured to automatically start and stop tracking using a simple cron-like format. The scheduler can be configured to start on device boot.

Read our docs
Prevent Suspend

iOS preventSuspend mode

iOS is far more strict than Android with apps running in the background. When your iOS app isn't currently requesting continuous location-updates, iOS will immediately put your app to sleep. However, the iOS Background Geolocation plugin has a clever and acceptable mechanism to keep your app running in the background, 24 hours-a-day without engaging continuous location-updates.

Read our docs
Demo Video

Background Geolocation in iOS Simulator.

Field test

Circumnavigation of Iceland

Background Geolocation performs well in a variety of environments. During June 2016, we took an Android Nexus 5 & iPhone 6s, both loaded up with the Demo App, for a two-week circumnavigation of the island of Iceland, where the plugin performed marvellously in a variety of environments from mountains to desolate emptiness.

Browse Map of Iceland
Get it on Google Play
Inside the machine

It’s not hard to see how we make your life easier.

HTTP & Persistence: The plugin persists every location it records into a SQLite database and optionally transmits to your server with its own configurable native HTTP service.

iOS preventSuspend: The plugin can be configured to keep your iOS app running constantly in the background, keeping your Javascript alive 24 hours / day.

Scheduling: The plugin can be configured with a cron-like schedule to automatically start / stop tracking for any particular period.

Infinite Geofencing: Monitor unlimited geofences with ENTRY, EXIT and DWELL transitions, firing these events into your Javascript callback.

Motion Activity Recognition: The plugin records the device's "motion activity" and appends this meta-data to each location it records (eg: "on_foot", "in_vehicle", "on_bicycle", "still", "running")

stopOnTerminate, startOnBoot: The plugin can be configured to continue tracking even if the user reboots the device or terminates the application.

Plans & Pricing

How many applications do you want to build?

Each key is bound to a single application identifier and valid for unlimited devices.

Eg:
com.company.app

Studio

For building 100 apps

$949 $749
  • 100 application keys
  • Perpetual license
  • Premium Support via Github issues and Slack
  • 1 year access to latest updates.
Buy Now

Pro

For building 25 apps

$749 $649
  • 25 application keys
  • Perpetual license
  • Premium Support via Github issues and Slack
  • 1 year access to latest updates.
Buy Now

Venture

For building 5 apps

$629 $499
  • 5 application keys
  • Perpetual license
  • Support via Github issues
     
  • 1 year access to latest updates.
Buy Now

Starter

For building 1 app

$379
  • 1 application key
  • Perpetual license
  • Support via Github issues
     
  • 1 year access to latest updates.
Buy Now

* Plans are easily upgradable after purchase.

High Praise

“I was just reading over the readme in the github project and I must say that you did one of the best jobs I've seen documenting the actual logic and edge-cases that we need to know to use your library.”

—David Pennington

  • "Thanks Chris! I can't wait to put this plugin to good use and thanks for making this a possibility. It's people like you that make developing hybrid apps possible and more practical and for that I thank you."
    —popcorn245
  • "You did great job with this. It’s a pleasure to see a well written gem like this over the abundance of junk that’s out there."
    —SwiftReach Networks
  • First I want to congratulate because your plugin and it is just awesome. I have tried on IOS and it is really amazing the way it works. It is just perfect and smooth.
    —AugustoAleGonZhipCode
  • "Let me start by saying that your plugin is really awesome and thank you so much for all your hard work."
    —MaliciousMustard
  • "Thank you for this library. I was about to write one myself but then I found this library."
    —bardiakhosravi
  • "First of all, love your plugin, appreciate all the hard work you've put into it."
    —adde-wik
  • "Hello Chris, and thanks for your terrific work on this plugin - it really helped me a lot."
    —geezmo
  • "I have been using your plugin without issue - thank you very much!"
    —comara
  • "Thanks for sharing this great plugin."
    —corklaassebos
  • "Terrific plugin."
    —darrenahunter
  • "let me thank all those who contributed in developing this great plugin"
    —hakimny
  • "great work!"
    —trcharlie
  • "Thank you Chris for a great plugin :)"
    —georgetudor
  • "I highly appreciate the author of the plugin - Thanks!!!"
    —YairHadari
  • "Amazing plugin!
    —programming-kid"