Tapo NFC is a mobile app built with Expo and React Native that allows users to interact with TP-Link Tapo cameras using NFC technology. With this app, you can register a Tapo camera, enable or disable it while connected to the same local network, write an NFC tag, and use that tag to toggle the camera status with a single tap.
- Camera Registration – Connect and save credentials to interact with your Tapo camera securely.
- Enable/Disable Camera – Toggle the privacy mode of your Tapo camera remotely.
- Write NFC Tag – Program an NFC tag to link it with the app and trigger actions.
- NFC Tag Interaction – Tap the tag to automatically enable/disable the camera.
- Deep Linking Support – NFC tags or links can launch the app directly to toggle the camera.
git clone https://github.com/your-username/tapo-nfc.git
cd tapo-nfc
npm install
Create a .env
file if needed. The INTENT_*
variables are used to configure Android intent filters under android -> data -> intentFilters
in app.config.js
:
EAS_PROJECT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ROUTER_ORIGIN=taponfc://
INTENT_ENABLED=true
INTENT_HOST=your-site.com
INTENT_PATH_PREFIX=/taponfc
npm run prebuild
To launch the app on a connected Android device or emulator:
npm run android
Make sure your device is connected and USB debugging is enabled.
Build the app for different purposes using EAS:
npm run eas:build:local
This will generate a .apk in ./build/latest.apk.
npm run eas:build:preview
For internal preview builds (usually with QR codes via EAS).
npm run eas:build
Use this for your release builds.
- NFC tags should be written with a deep link like:
taponfc://toggle
- The app is configured with a custom scheme (taponfc) to automatically handle links and open the relevant screen.
- You can also use Android App Links with a domain (e.g. https://yourdomain.com/taponfc) for automatic launch via browser or NFC.
MIT © 2025 — Luis Sacristán