Home
FreeChrome Android only

NFC Web Reader

Read NFC tags directly from your browser (Chrome for Android only)

This tool requires Chrome for Android with NFC enabled. Not supported on iOS or desktop.

Tap a NFC tag to read it

Web NFC Reader: Read NFC Tags Directly from Your Browser Without an App

1What Is Web NFC and What Makes It Revolutionary?

Web NFC is a browser API that allows websites to read from and write to NFC tags directly from the web browser — without installing a native app. This is a significant milestone for the web platform, as it brings physical-world NFC interaction to any website or progressive web app (PWA) running in a compatible browser. Before Web NFC, accessing NFC from the web required users to install a native Android or iOS application. This created friction — users had to visit an app store, download and install an app (often several megabytes), grant permissions, and only then use the NFC functionality. Web NFC eliminates all of these steps: the user simply opens a website in Chrome for Android, grants NFC permission when prompted, and starts reading tags. This opens up compelling use cases for web developers: product authentication systems where a brand's website can verify an NFC tag embedded in packaging, interactive museum exhibits where tapping a tag loads specific exhibit information, inventory management systems running as web apps, and event check-in systems that work in any browser without app distribution. This tool uses the Web NFC API to demonstrate tag reading directly in your browser. It shows you each record read from the tag — its type, content, and raw data — without any intermediate app.

2How the Web NFC API Works: NDEFReader and the Scanning Process

The Web NFC API is centered around the NDEFReader interface, which provides methods to scan for and read NFC tags. The scanning process: First, the code creates an NDEFReader instance. Second, it calls the scan() method, which triggers a browser permission dialog asking the user to allow NFC access. Third, if permission is granted, the browser starts listening for NFC tags in the background. Fourth, when a tag comes within range (1–4 cm), the browser fires a 'reading' event with the tag's NDEF content. Fifth, the 'reading' event handler receives an NDEFMessage object containing an array of NDEFRecord objects. Each NDEFRecord has these properties: recordType (a string like 'url', 'text', 'mime'), mediaType (for MIME records), id (optional identifier), data (an ArrayBuffer with the raw payload), and helper methods like toURL() for URL records or toText() for text records. Security requirements: Web NFC requires a secure context (HTTPS or localhost). The page must be in the foreground (not a background tab). The user must explicitly grant NFC permission. Permission can be revoked at any time from browser settings. The API only works when the Android device's NFC is enabled in system settings. Error handling: Common errors include 'NotSupportedError' (browser doesn't support Web NFC), 'NotAllowedError' (user denied permission), 'NotReadableError' (tag read failed), and timeout errors if no tag appears within the scanning window.

3Web NFC Use Cases for Web Developers and Businesses

Web NFC enables a new category of hybrid physical-digital web applications that were previously impossible without native apps. Product authentication and anti-counterfeiting: A luxury brand's website can read an NFC tag embedded in a product and verify its authenticity against a database — all without a dedicated app. Customers scan the product from the brand's own website, maintaining brand consistency. Interactive retail experiences: Clothing stores can embed NFC tags in garments. When a customer taps their phone on a tag on the website's embedded reader page, they instantly see detailed product information, available sizes, care instructions, and related items. Museum and exhibition guides: Instead of downloading a museum app, visitors tap NFC tags on exhibit plaques with their phone while the museum's website is open. The site immediately loads rich content about that specific exhibit — video, audio guide, related artwork. Inventory and asset management: Warehouses and businesses that manage physical assets can build web-based inventory systems where workers scan asset NFC tags in a Chrome browser to log checkouts, check status, and update records — no app installation required on work devices. Event management and check-in: Event staff at registration desks scan attendee NFC badges using a web app in Chrome. The system instantly verifies the attendee, marks them as present, and shows their details — working as a PWA that can be installed on any Android device. Loyalty programs: Retailers can implement tap-based loyalty point collection through their website. The customer's loyalty card has an NFC tag; tapping it on the store's website reader instantly adds points without needing the retailer's dedicated loyalty app.

4Browser Compatibility, Permissions, and Security Model

Understanding the exact compatibility matrix and security model of Web NFC is essential for developers and users of this tool. Supported browsers and platforms: Web NFC is currently only supported in Chromium-based browsers on Android. Specifically, Chrome for Android version 89 and later. This covers Google Chrome, Microsoft Edge on Android, and other Chromium derivatives on Android. Opera for Android and Samsung Internet do NOT currently support Web NFC despite being Chromium-based — they have not yet implemented the API. Not supported: iOS/iPadOS (Safari, Chrome for iOS, Firefox for iOS — none support Web NFC due to Apple's restrictions on NFC access for third-party browsers). Desktop browsers (Chrome for Windows, macOS, Linux — Web NFC is not available on desktop). Firefox on Android does not support Web NFC. Permission model: Web NFC uses the Permissions API. The permission is 'nfc'. Once granted on a site, it is remembered for subsequent visits, but the user can revoke it at any time from Chrome's site settings. The permission prompt appears as a standard Chrome permission dialog similar to camera or microphone access requests. Security considerations: Web NFC cannot read or write to NFC tags in background tabs or when the screen is off. This is a deliberate security measure. Additionally, NDEF write operations (not shown in this tool) require an additional 'user activation' (a button click) immediately before writing, preventing malicious auto-write attacks. Reading does not require user activation after the initial permission grant.

5Progressive Web Apps with NFC: Best Practices

Web NFC is most powerful when combined with Progressive Web App (PWA) technology, creating web applications that feel like native apps while retaining all the advantages of the web. Making your NFC web app installable: Add a Web App Manifest (manifest.json) with the name, icons, and display mode ('standalone' or 'fullscreen'). Once installed from Chrome on Android, the PWA runs without browser UI, looks like a native app, and maintains its NFC permissions from the website. Handling the permission flow gracefully: Do not request NFC permission immediately on page load. Instead, show a clear explanation of what the NFC functionality does, then request permission only when the user clicks a specific 'Start scanning' button. This pattern has much higher permission grant rates. Offline support: Use Service Workers to cache your web NFC app's assets, allowing it to work in areas with poor connectivity. The NFC reading itself is always local (between the phone and the tag) and does not require internet — only the server lookup that follows the scan needs connectivity. Error handling for non-Chrome Android browsers: Always check for NDEFReader in the window object before using it. Show a friendly, specific message explaining that Web NFC requires Chrome for Android, with a link to install Chrome. Never show a generic 'not supported' error. Testing without physical tags: During development, you can test the full flow by mocking the NDEFReader API using a JavaScript mock object that fires synthetic 'reading' events. This allows automated testing with Puppeteer or Playwright without physical NFC hardware.

FAQFrequently Asked Questions

Why does Web NFC only work in Chrome for Android?

Web NFC requires direct access to the device's NFC hardware through the operating system. On Android, Google has implemented the Web NFC API in the Chromium engine starting from version 89. Apple has not granted third-party browsers on iOS direct NFC hardware access — on iOS, only native apps using the Core NFC framework can read NFC tags. Apple's own Safari browser does not implement Web NFC either. This is an ongoing area of web standards development and the situation may change in future iOS versions.

Can Web NFC write to NFC tags, not just read them?

Yes, the Web NFC API also supports writing to NFC tags using the NDEFReader.write() method. This tool currently only demonstrates reading. Writing requires a user gesture (button click) immediately before the write call for security reasons. The write method accepts an NDEFMessage object or a simple string/URL. Note that writing to locked or protected tags will throw an error. Web NFC writing is subject to the same browser compatibility restrictions as reading — Chrome for Android only.

Does Web NFC work with all types of NFC tags?

Web NFC works with NFC tags that contain NDEF-formatted data and use technology types that the Android NFC stack supports: NDEF-formatted NTAG21x, Mifare Ultralight, and other ISO 14443 Type A/B tags. Mifare Classic tags require proprietary authentication that is not exposed through the Web NFC API — you would need a native Android app to read Mifare Classic. ISO 15693 (HF NFC-V) tags are also not supported via Web NFC currently.