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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@altergo/react-native-biometrics

v1.0.0

Published

React Native biometrics support for Android and iOS

Downloads

3

Readme

React Native Biometrics

React Native Version

React Native Biometrics is a React Native library for authenticating users with biometrics. Inspired by react-native-fingerprint-scanner.

iOS

The usage of the TouchID is based on a framework, named Local Authentication

It provides a Default View that prompts the user to place a finger to the iPhone’s button for scanning

Android

Using an expandable Android Fingerprint API library, which combines Samsung and Meizu's official Fingerprint API

Samsung and Meizu's Fingerprint SDK supports most devices which system versions less than Android 6.0

Table of Contents

Installation

$ yarn add react-native-biometrics

Automatic Configuration

$ npx react-native link react-native-biometrics

Manual Configuration

iOS

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-biometrics and add ReactNativeBiometrics.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libReactNativeBiometrics.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project

Android

  • Open up android/app/src/main/java/.../MainActivity.java
  • Add to the imports at the top of the file
import com.smrnvmkhl.biometrics.ReactNativeBiometricsPackage;
  • Add new ReactNativeBiometricsPackage() to the list returned by the getPackages() method
@Override
protected List<ReactPackage> getPackages() {
  return Arrays.<ReactPackage>asList(
      new MainReactPackage(),
      ...
      new ReactNativeBiometricsPackage()
  );
}
  • Append the following lines to android/settings.gradle:
include ':react-native-biometrics'
project(':react-native-biometrics').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-biometrics/android')
  • Insert the following lines inside the dependencies block in android/app/build.gradle
compile project(':react-native-biometrics')
  • Add rules to proguard rules file (default: android/app/proguard-rules.pro)

Permissions

Add the following permissions to their respective files:

AndroidManifest.xml

<uses-permission android:name="android.permission.USE_BIOMETRY" />

Info.plist

<key>NSFaceIDUsageDescription</key>
<string>$(PRODUCT_NAME) requires FaceID access to allows you quick and secure access</string>

API

| Name | Description | OS | |-|-|-| | authenticate | Starts biometrics authentication | Both | | getStatus | Get biometrics status code | Both | | release | Stops biometrics listener | Android |

authenticate

authenticate({
  onNotMatch: Function(code), // Callback calls when firngerprint not matched
  description: String, // Purpose of request for user authentication
  fallback: String, // Text of fallback button
  reuse: Number, // Number of seconds after unlock by biometrics
}): Promise<String>

getStatus

getStatus(): Promise<String>

release

release(): void

Codes

| Code | Description | OS | |-|-|-| | fingerprint | TouchID on iOS and Fingerprint on Android | Both | | face | FaceID on iOS | iOS | | success | Success authenticate | Both | | failed | The user failed to provide valid credentials | Both | | notSupported | Device does not support biometrics | Both | | notAvailable | Biometrics is not available on the device | Both | | notEnrolled | The user has no enrolled biometric identities | Both | | notMatch | No match | Android | | deviceLocked | Authentication was not successful, the device currently in a lockout | Android | | userCancel | The user tapped the cancel button in the authentication dialog | iOS | | fallback | The user tapped the fallback button in the authentication dialog, but no fallback is available for the authentication policy | iOS | | systemCancel | The system canceled authentication | iOS | | passcodeNotSet | A passcode isn’t set on the device | iOS | | unknown | Could not authenticate for an unknown reason | iOS |