ReadNFC function
Applies to: Canvas apps
Reads a Near Field Communication (NFC) tag.
Description
Use the ReadNFC function to read an NFC tag that is close to your device. When invoked, the screen displays instructions for scanning an NFC tag, and only returns after the tag has been scanned or it times out.
Column | Type | Description |
---|---|---|
Identifier | Text | The NFC tags identifier if available. |
NDEFRecords | Table | The supported NDEF records found on the tag. |
A single NDEFRecord contains the following columns:
Column | Type | Description |
---|---|---|
RTD | Text | The tag's Record Type Definition (RTD). Only Text and URI are supported at this time. |
TNF | Number | The tag's Type Name Format (TNF). Only TNFs of Well Known(1) are supported at this time. |
Text | Text | The text payload of the NFC tag if RTD is TEXT, blank otherwise. |
URI | Hyperlink | The URI payload of the NFC tag if RTD is URI, blank otherwise. |
If the NDEF record isn't supported (for example, the TNF isn't of type Well Known), then it won't be returned as part of the NDEFRecords table.
Always check the payload values for blank using the IsBlank function before using it. You don't need to check the RTD and TNF values yourself as they must be the correct values for Text and URI to have a non-blank value.
Additional RTD and TNF values may be supported in the future. If more values are supported, additional payload columns will also be added. The raw RTD and TNF values are provided for informational purposes and don't need to be consulted if the payload column is checked for blank. More information about these values and their use is available through the NFC Forum.
ReadNFC doesn't require a tag containing NDEF records to be used, but you may still get the tag identifier if one is available.
ReadNFC can only be used in behavior formulas.
Note
- ReadNFC is only supported when running the app on a native mobile app, such as the iOS and Android apps. Even with a supported player, a device may not support NFC. If your application has Formula-level error management turned on, the function will return an error. Otherwise, an error message will be shown to the user and the function will return a blank record.
- Ensure your device has the NFC setting enabled to use this capability.
Syntax
ReadNFC()
Examples
Formula | Description | Result |
---|---|---|
ReadNFC().Identifier |
Returns the identifier of the NFC tag if one exists. | 04A1C301314003 |
ReadNFC().NDEFRecords |
Returns a table of NDEF records found on the NFC tag if they're a supported type and payload. |
Step-by-step example
Create a blank canvas app with Phone format.
Add a Button control.
Double-click the button control to change the button text to Read NFC Tag (or modify the Text property).
Set the OnSelect property of the button control to this formula that will add an item to our collection:
With(ReadNFC(), Set(id, Coalesce(Identifier, "No ID")); ForAll(NDEFRecords, Collect(tagRecords, {ID: id, Value: Coalesce(Text, URI)})))
This formula reads an NFC tag using the
ReadNFC()
function, and displays type information about the result. Then it collects the read NFC tags to populate thetagRecords
collection to be used for the gallery in the next steps.Add a Gallery control with a vertical layout.
When prompted, select the tagRecords collection as the data source for this gallery. This action will set the Items property of the Gallery control.
Reposition the gallery control so that it doesn't overlap the button, and change the layout type to Title and subtitle.
Change the Title formula in the gallery control to ThisItem.Value and change the Subtitle formula in the gallery control to ThisItem.ID.
You can also delete the NextArrow from the gallery control since it's not used.
Save and publish the app.
Since the function
ReadNFC()
can't be used in Power Apps Studio or in a web browser, open your app on a mobile device.Tip
The app might take a few moments to appear on your mobile device. If you don't see the app listed, try refreshing your app list.
Select Read NFC Tag and scan a tag. Repeat the process to add multiple tags to your collection.