License sales launch: April 27, 2026 Get notified or view pricing

bglocation

The plugin uses a perpetual license model with offline RSA-2048 validation. During evaluation you get 30-minute trial sessions — no credit card required.

Trial Mode

Without a license key the plugin runs in trial mode automatically:

  • 30-minute sessions — tracking stops automatically and fires an onTrialExpired event.
  • 1-hour cooldown — you must wait before starting a new trial session.
  • Debug forced on — verbose logs are enabled so you can inspect behavior.
  • Full feature access — HTTP posting, geofencing, adaptive filter — everything works.
BackgroundLocation.addListener('onTrialExpired', (event) => {
  console.log('Trial ended at', new Date(event.timestamp));
  // Tracking has been stopped automatically.
  // Next trial available after 1-hour cooldown.
});

Adding a License Key

Place the license key in your Capacitor config and re-run sync.

// capacitor.config.ts
import type { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'com.yourcompany.app',
  plugins: {
    BackgroundLocation: {
      licenseKey: 'BGL1-eyJ...',
    },
  },
};

export default config;

How Validation Works

  • RSA-2048 signed payloads verified fully offline on-device.
  • No network calls, no license server — your app works in airplane mode.
  • License bound to your app's bundle identifier (e.g. com.yourcompany.app).
  • Works across both Capacitor and React Native wrappers for the same bundle ID.

Perpetual License Model

What You Get

  • Perpetual right to use the purchased version
  • 1 year of updates included
  • All features, all platforms

After Year One

  • Keep using your current version forever
  • Optionally renew for another year of updates
  • No forced upgrades, no tracking cutoff

Checking License Status

The configure() result includes license information:

const result = await BackgroundLocation.configure({ ... });

console.log(result.licenseMode);          // 'full' | 'trial'
console.log(result.licenseUpdatesUntil);  // '2026-01-15' (if licensed)
console.log(result.licenseUpdateExpired); // true if updates expired
console.log(result.licenseError);         // string if validation failed

ConfigureResult Interface

PropertyTypeDescription
licenseMode'full' | 'trial'Current license mode.
licenseUpdatesUntilstring?ISO date until updates are available.
licenseUpdateExpiredboolean?True if plugin version exceeds update window.
licenseErrorstring?Validation error message (bundle mismatch, corrupted key, etc.).