Install it
Expo or bare React Native, the requirements, and why you need a development build.
Read your first tag
From an empty project to a working scan screen, step by step.
Set it up for your use case
One page per case, with both the Expo plugin option and the exact plist and manifest XML.
Coming from nfc-manager
An API equivalence table, and the six differences that change your code.
Two things to know before reading further
A tag carries no technology methods until you narrow it
A tag carries no technology methods until you narrow it
tag.is('ndef') is what makes readNdef exist, in the type system and at
runtime. That is how the platform difference stays visible: on iOS
tag.is('mifareClassic') is always false, because CoreNFC cannot reach
Crypto-1 at any OS version.withTag always closes the session
withTag always closes the session
On success, on a throw, on an abort, on a timeout, and when the platform ends
the session underneath.A leaked session keeps the iOS sheet up and holds Android’s NFC controller
exclusively, which is the failure that surfaces two screens later as something
unrelated.
What is here
What works where
The interesting column is the one that says no. None of this is hidden behind a method that exists and then throws —nfc.capabilities and tag.is() tell you at
runtime, and the types tell you before that.
Where to go next
Sessions
The three ways to get a tag, and which to reach for.
Tags
Narrowing, platform facets, and what a tag can do.
The NDEF codec
Building and parsing messages, with or without a device.
Error reference
Every
NfcErrorCode, what causes it, what to do about it.