Socket
Socket
Sign inDemoInstall

@okhi/react-native-background-geofencing

Package Overview
Dependencies
0
Maintainers
2
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @okhi/react-native-background-geofencing

A reliable React Native Geofencing library, that works in the background and survives device restarts


Version published
Weekly downloads
7
Maintainers
2
Install size
165 kB
Created
Weekly downloads
 

Readme

Source

React Native Background Geofencing

A reliable React Native geofencing library, that works in the background and survives device restarts.

WARNING: Currently only supports Android devices. Plans for iOS are underway

Getting started

$ yarn add react-native-background-geofencing

Android

Mostly automatic installation (for RN < 0.60)

$ react-native link react-native-background-geofencing

Permissions

Add the following permissions to your AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android">

  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
  <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.WAKE_LOCK" />

</manifest>

Usage

1. Create an async JavaScript task file that will handle Geofence events

$ touch myTask.js

2. Place the following code inside myTask.js

The task will be executed in the background even after the device restarts.

import {RNGeofenceEvent} from 'react-native-background-geofencing';
export default async function myTask({event, data}) {
  // handle Geofence updates here
  if (event === RNGeofenceEvent.ENTER) {
    console.log(`welcome to ${data.lat},${data.lng}`);
  }
  if (event === RNGeofenceEvent.ERROR) {
    console.log(`Opps, something went wrong: ${data.errorMessage}`);
  }
}

3. Configure your JavaScript task and/or webhook

Add the following in your app's index.js file.

import {AppRegistry} from 'react-native';
import {
  configureJSTask,
  configureWebhook,
} from 'react-native-background-geofencing';
import App from './App';
import myTask from './myTask.js';

configureJSTask({
  task: myTask,
  // Required to enable your task to run as an Android foreground service
  notification: {
    title: "Don't mind me",
    text: "I'm just a notification",
  },
});

// If you'd like to ship the events to a server use this.
// Its guaranteed to run when the device has an internet connection using Android's Work manager API

configureWebhook({
  url: 'https://myapi.com/geofences',
  headers: {
    foo: 'Bar',
  },
});

AppRegistry.registerComponent(appName, () => App);

4. Add / Remove Geofences

import RNBackgroundGeofencing from 'react-native-background-geofencing';

const geofence = {
  id: 'mygeofence',
  lat: -1.29273,
  lng: 36.820389,
};

await RNBackgroundGeofencing.add(geofence);

await RNBackgroundGeofencing.remove(geofence.id);

Contributions

Are welcomed ♥️ especially those specifically addressing iOS support and bug fixes.

Keywords

FAQs

Last updated on 30 Jun 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc