Website to Desktop App – Coming Soon!

Join the waitlist now and get an exclusive early-bird discount when we launch!

+91

By filling this form you are granting the permission to share your details with Webtonative

Background Location

Background Location

This procedure will help you integrate background location tracking into your app, enabling you to receive device location updates even when the app is running in the background. You can also store these location updates on your server.

Key Features

1. Background Location Tracking: Get device location updates while the app is running in the background.

2. Server Storage: Option to send and store location data on your server.


Setting Up Background Location Tracking

1. Add Background Location

Click on "Add" button to add Background Location. Once you add, it will appear in Add-ons menu.

Screenshot 2025-05-12 155520.png


2. Enable Background Location

  • After adding the add-on, you will see the settings option in the section.
  • Enable or disable the background location tracking option.

Save your changes and Rebuild your app to see the changes are in action.

Import the JavaScript File

Before starting, import the necessary JavaScript file into your website using the provided link.

Implementing Background Location Tracking

1. Start Receiving Location Updates

Plain JavaScript:

window.WTN.backgroundLocation.start({
  callback: locationCallback,
  apiUrl: 'https://your-api-endpoint.com/location',
  timeout: 60000, // 1 minute
  data: { userId: 'yourUserId' },
  backgroundIndicator: false, // iOS only
  pauseAutomatically: true, // iOS only
  distanceFilter: 10.0,
  desiredAccuracy: "best",
  activityType: "fitness", // iOS only
});
 
// Example callback function
function locationCallback(location) {
  console.log(location);
}

ES6+:

import { start, stop } from "webtonative/BackgroundLocation";
 
// Start receiving location updates
start({
  callback: locationCallback,
  apiUrl: 'https://your-api-endpoint.com/location',
  timeout: 60000, // 1 minute
  data: { userId: 'yourUserId' },
  backgroundIndicator: false, // iOS only
  pauseAutomatically: true, // iOS only
  distanceFilter: 10.0,
  desiredAccuracy: "best",
  activityType: "fitness", // iOS only
});
 
// Example callback function
function locationCallback(location) {
  console.log(location);
}

2. Stop Receiving Location Updates

Plain JavaScript:

window.WTN.backgroundLocation.stop();

ES6+:

import { stop } from "webtonative/BackgroundLocation";
 
// Stop receiving location updates
stop();

Configuration Options

  • callback: (Optional if apiUrl is provided) A JavaScript function called to send you location updates.
  • apiUrl: (Optional if callback is provided) An API endpoint that will be called using the POST method to send location updates.
  • data: (Optional) Extra data to send along with location updates. Useful for identifying users or other custom data.
  • backgroundIndicator: (Optional, Default: false, iOS only) Modifies the status bar on iOS to indicate that the app is using location services when backgrounded.
  • pauseAutomatically: (Optional, Default: true, iOS only) Pauses updates to save battery life when location data is unlikely to change.
  • distanceFilter: (Optional, Default: 0.0 meters) The minimum distance a device must move horizontally before generating an update event.
  • desiredAccuracy: (Optional, Default: "best", iOS only) The accuracy of the location data. Options: "best", "bestForNavigation", "tenMeters", "hundredMeters", "kilometer", "threeKilometers".
  • activityType: (Optional, Default: "other", iOS only) The type of user activity. Options: "other", "automotiveNavigation", "otherNavigation", "fitness", "airborne".

Location Object

When a location update is sent to your callback or apiUrl, the location object will contain:

  • latitude: The latitude in degrees.
  • longitude: The longitude in degrees.
  • altitude: The altitude in meters.
  • timestamp: Time of the location update in milliseconds since Jan 1, 1970.
  • data: The extra data sent during the call to the start method.
  • floor: (iOS only) The logical floor of the building.
  • deviceID: Device ID.
  • playerId: OneSignal Player ID (if OneSignal is enabled).
  • speed: The instantaneous speed of the device in meters per second.
  • direction: (iOS only) The direction the device is pointing (e.g., N, NE, E, SE, S, SW, W, NW).
  • horizontalAccuracy: (iOS only) The radius of uncertainty for the location in meters.
  • verticalAccuracy: The validity of the altitude values and their estimated uncertainty in meters.

Note

  • Foreground Updates: Location updates will be sent to both the callback function and the apiUrl when the app is in the foreground.
  • Background Updates: Only the apiUrl will be used to send location updates when the app is in the background.