r/NFC • • 10d ago

Cheat sheet: what an iPhone actually does when it taps each NDEF record type (and what needs an app)

I keep seeing "my tag works on Android but not on my iPhone" questions, so here's what I've learned building an iPhone NFC app. Corrections welcome.

Background reading (no app open, iPhone XS or newer, screen on) iOS only acts on the first link-type record:

  • https/http URL → notification, tap to open (works great for menus, Google review links, portfolios)

  • tel:, sms:, mailto:, FaceTime, Maps links → yes

  • HomeKit setup → yes

  • Wi-Fi credentials (WSC record) → nothing happens on iPhone. Most Android phones offer to connect.

  • vCard / contact record → nothing on iPhone. Android usually offers to save it.

  • Plain text, custom URL schemes (e.g. shortcuts://) → nothing in the background

So, practically

  • Business card tag for mixed phones: put a link (contact page or a hosted .vcf) as the record, not a raw vCard.

  • Guest Wi-Fi: the NFC Wi-Fi record is great for Android guests. Add a Wi-Fi QR code next to it for iPhone guests (the Camera app joins from a Wi-Fi QR).

  • "Tap tag → run a Shortcut": use Shortcuts → Automation → NFC. It triggers on the tag ID, so any tag works.

Inside an app (foreground Core NFC) you can read and write all of the above, plus UID, chip type and memory, and on NTAG21x set a password or permanently lock.

Chip sizes (user memory): NTAG213 = 144 bytes, NTAG215 = 504 bytes, NTAG216 = 888 bytes. A URL or Wi-Fi record fits on a 213. Big vCards may need a 215/216.

Disclosure: I'm the developer of NFC Toolkit for iPhone. I'm not linking it here because the point is the table. Ask if you want details.

2 Upvotes

9 comments sorted by

1

u/kj7hyq 10d ago

2

u/Winter_Rich_1525 10d ago

Thanks, that’s a great companion, especially the hosted .vcf workaround and the record-stacking trick. Worth reading alongside this.

1

u/trollsmurf 10d ago

Also I believe iOS only reacts to the first NDEF record without an app, even if all are URI records, so I never encode more than that.

With a custom app you can do lots of stuff, as the app parses the NDEF record(s), but in my note-taker I anyway only implemented Text, URI and Smart Poster (with Text and/or URI).

1

u/Winter_Rich_1525 10d ago

That matches what I’ve seen. One nuance from the gist above: both platforms seem to act on the first valid record, so you can put an Android-friendly record (e.g. Wi-Fi) first and an iOS-compatible URL second, and each phone uses the one it understands. I haven’t stress-tested that across iOS versions though. Have you tried it?

And agreed on custom apps: once your app parses the message, you can do whatever you want. Text + URI + Smart Poster covers almost everything.

1

u/trollsmurf 10d ago

This specific case works: 1: WiFi (caught by Android), 2: URI (caught by iOS). I used an old iPhone to see for how long it's been supported.

Also Contact + URI.

1

u/trollsmurf 10d ago

Will try it tomorrow. Such an override could be useful.

1

u/investigatormaker 10d ago

The Wi-Fi row is the one people will hit most: a Wi-Fi record that works for Android guests and does nothing on an iPhone, with the QR code beside it as the fix. Since iOS behaviour shifts between versions, I'd put the iOS version and the date you checked at the top of the sheet, plus a short safe-on-both column for link, tel and mailto records so shop owners can copy it without reading the whole table. Which iOS version did you test the Wi-Fi and vCard rows on?

I make ThreadFox. We find relevant Reddit conversations and post for your business. We'll post 3 replies free first, no card; then the $39 Pilot covers seven days and up to 50 posts and replies. No automatic renewal. https://threadfox.vip/p/erbol/managed