revtel/react-native-nfc-manager
revtel/react-native-nfc-manager has 1,645 GitHub stars and 350 forks. GitHot measured +2 stars in 24 hours. Last checked 2026-11-07 04:03 UTC. Last push 2026-10-27.
React Native NFC module for Android & iOS
Measured star growth
- in 24h
- +2
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Originalreact-native-nfc-manager
NFC for React Native, built for the New Architecture and Expo Development Builds.
Requires React Native 0.76+ with the New Architecture. Use an NFC-capable physical device to test scans.
Versions
- v4 (current): The stable New Architecture line on npm
latest, developed onmain. - v3 (legacy): Existing v3 or Legacy Architecture apps can install
react-native-nfc-manager@3. Source and documentation remain on the v3 branch.
Installation
npm install react-native-nfc-manager
Pin the resolved version for reproducible installs. See migration when upgrading an existing app.
Expo Development Builds
Expo Go cannot load this native module. Add the config plugin to app.json:
{
"expo": {
"plugins": ["react-native-nfc-manager"]
}
}
Install the development client and build the native app:
npx expo install expo-dev-client
npx expo prebuild
npx expo run:ios --device
# Or: npx expo run:android --device
npx expo start --dev-client
Rebuild after changing native dependencies or plugin options. For iOS capabilities and plugin options, see Expo setup.
React Native CLI
- iOS: run
pod install, then configure NFC capabilities and usage description. - Android: the module is autolinked; check NFC permissions and device support, then rebuild the app.
Read an NDEF tag
Call this function from a user action. It prevents overlapping scans and awaits cleanup before allowing another request.
import NfcManager, {NfcTech} from 'react-native-nfc-manager';
let scanning = false;
async function readNdef() {
if (scanning) return;
scanning = true;
let requestAttempted = false;
try {
await NfcManager.start();
requestAttempted = true;
await NfcManager.requestTechnology(NfcTech.Ndef);
const tag = await NfcManager.getTag();
console.log('NDEF records', tag?.ndefMessage ?? []);
} catch (error) {
console.warn('NFC scan ended', error);
} finally {
try {
if (requestAttempted) {
await NfcManager.cancelTechnologyRequest();
}
} catch (cleanupError) {
console.warn('NFC cleanup failed', cleanupError);
} finally {
scanning = false;
}
}
}
For a complete React screen and session lifecycle, see reading NDEF tags.
To retrieve tag information before authentication, use
getTag({readNdef: false}) to skip iOS's implicit NDEF read. Android still
returns any discovery-time NDEF cache. See read control and platform details.
Technology support
| Technology | Android | iOS |
|---|---|---|
| NDEF, NFC-A, ISO-DEP | ✅ | ✅ |
| NFC-V / ISO 15693 | NfcV |
Iso15693IOS |
| MIFARE | MifareClassic, MifareUltralight |
MifareIOS |
| FeliCa | NfcF |
FelicaIOS |
See the full technology and handler table. Actual tag support depends on the device and OS.
Documentation
Read the v4 documentation website. The Markdown index is also available in this repository.
- Installation and runtime requirements
- Expo setup · iOS setup · Android setup
- API and handlers
- Expo troubleshooting
- Support policy · Changelog
Examples and contributing
The development example exercises the New Architecture API. Contributing includes build instructions and the NFC ReWriter app.
Created by whitedogg13.
Explore related projects
freeCodeCamp/freeCodeCamp
freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.
458,717 starsdonnemartin/system-design-primer
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
377,257 starsreact/react
The library for web and native user interfaces.
252,365 starsvuejs/vue
This is the repo for Vue 2. For Vue 3, go to https://github.com/vuejs/core
212,631 stars