React Native NFC module for Android & iOS
See the codeNFC 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.
latest, developed on main.react-native-nfc-manager@3. Source and documentation remain on the v3 branch.npm install react-native-nfc-manager
Pin the resolved version for reproducible installs. See migration when upgrading an existing app.
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.
pod install, then configure NFC capabilities and usage description.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.
| 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.
Read the v4 documentation website. The Markdown index is also available in this repository.
The development example exercises the New Architecture API. Contributing includes build instructions and the NFC ReWriter app.
Created by whitedogg13.
533 followers · starred Mar 2018
625 followers · starred Sep 2025
384 followers · starred Jun 2023
24 followers · starred Mar 2019
React Native NFC module for Android & iOS
See the codeNFC 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.
latest, developed on main.react-native-nfc-manager@3. Source and documentation remain on the v3 branch.npm install react-native-nfc-manager
Pin the resolved version for reproducible installs. See migration when upgrading an existing app.
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.
pod install, then configure NFC capabilities and usage description.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.
| 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.
Read the v4 documentation website. The Markdown index is also available in this repository.
The development example exercises the New Architecture API. Contributing includes build instructions and the NFC ReWriter app.
Created by whitedogg13.
533 followers · starred Mar 2018
625 followers · starred Sep 2025
384 followers · starred Jun 2023
24 followers · starred Mar 2019