npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@woosmap/react-native-plugin-geofencing

v1.0.2

Published

This react-native plugin extends the functionality offered by the Woosmap Geofencing Mobile SDKs. Find more about the Woosmap Geofencing SDK

Readme

woosmap

Woosmap Geofencing React Native Plugin

SDKs to help developers collecting users’ locations in the right way.

The Woosmap Geofencing SDK is a mobile cross-platform software development kit focused on gathering efficiently the users’ location, triggering events based on region monitoring, and providing categorized users’ zone of interest from geographical and temporal clusters.

The SDK simplifies the integration of the location context in your mobile application by taking care of lower-level functionalities such as data collection or battery management.

Documentation

All feature descriptions and guides to implement the Woosmap Geofencing Android & iOS SDK are available on the Woosmap developers documentation.

If you are looking for the Woosmap Geofencing React Native plugin documentation, we have a dedicated section for it.

Requirements

  • React Native >=0.85.0 and React >=19.2.3
  • iOS >=15.1
  • Android: JDK 17, minSdk 24, compileSdk/targetSdk 36
  • Node.js >=22

Requesting location permissions

WoosmapGeofencing.requestPermissions(background: boolean) asks the user for location permissions and resolves to one of:

| Return value | Meaning | |-----------------------|-------------------------------------------------------------| | GRANTED_BACKGROUND | Foreground and background location are granted. | | GRANTED_FOREGROUND | Only foreground ("while in use") location is granted. | | DENIED | The user denied location permission. | | UNKNOWN | Status could not be determined (e.g. no foreground activity). |

Android: two-step flow for background location

On Android 11+ (API 30+) the system silently denies ACCESS_BACKGROUND_LOCATION when it is bundled with a foreground location permission in the same request. Background location must therefore be requested after foreground has been granted:

import { Platform } from 'react-native';
import WoosmapGeofencing from '@woosmap/react-native-plugin-geofencing';

async function requestBackgroundLocation() {
  const first = await WoosmapGeofencing.requestPermissions(true);
  if (Platform.OS === 'android' && first === 'GRANTED_FOREGROUND') {
    // Second call opens the system "Allow all the time" settings page
    // and resolves to GRANTED_BACKGROUND once the user confirms.
    return WoosmapGeofencing.requestPermissions(true);
  }
  return first;
}

Notes:

  • On iOS a single requestPermissions(true) call already asks for "Always" authorization; the second call is a no-op there.
  • On Android 10 (API 29) both foreground and background prompts still appear through the two-step flow — the first call shows the tri-state dialog, the second is skipped because background is already granted.
  • If the user selects "Deny" on the background settings page, subsequent calls resolve to GRANTED_FOREGROUND. Only a manual change in the system settings can re-enable background location.