ReadNFC 函数

适用于:画布应用

读取近场通信 (NFC) 标记。

Description

使用 ReadNFC 函数读取靠近您的设备的 NFC 标记。 调用时,屏幕会显示扫描 NFC 标记的说明,仅在标记被扫描或超时后会返回。

类型 说明
标识符 文本 NFC 标记标识符(如果有)。
NDEFRecords 标记上找到支持的 NDEF 记录。

单个 NDEFRecord 包含以下列:

类型 说明
RTD 文本 标记的记录类型定义 (RTD)。 目前仅支持文本URI
TNF 数字 标记的类型名称格式 (TNF)。 目前仅支持已知(1)的 TNF。
文本 文本 如果 RTD 为文本,则为 NFC 标记的文本有效负载,否则为空白
URI 超链接 如果 RTD 为 URI,则为 NFC 标记的 URI 有效负载,否则为空白

如果不支持 NDEF 记录(例如,TNF 不是已知类型),它不会作为 NDEFRecords 表的一部分返回。

在使用之前,请务必使用 IsBlank 函数检查空白的有效负载值。 您不需要自己检查 RTDTNF 值,因为它们必须是正确的文本URI 值才能具有非空白值。

将来可能会支持其他 RTDTNF 值。 如果支持更多值,还将添加其他有效负载列。 原始 RTDTNF 值仅供参考,如果检查出有效负载列为空白,则不需要查阅这些值。 NFC 论坛提供了有关这些值及其使用的更多信息。

ReadNFC 不需要使用包含 NDEF 记录的标记,但如果有标记标识符,您仍然可以获得标记标识符。

ReadNFC 只能在行为公式中使用。

备注

  • ReadNFC 仅在本机移动应用(如 iOSAndroid 应用)中运行应用时支持使用。 即使有支持的播放器,设备也可能不支持 NFC。 如果您的应用程序开启了公式级错误管理,此函数将返回错误。 否则,会向用户显示一条错误消息,函数将返回空白记录。
  • 确保您的设备启用了 NFC 设置,可以使用此功能。

语法

ReadNFC()

示例

公式 说明 结果
ReadNFC().Identifier 如果存在,将返回 NFC 标记的标识符。 04A1C301314003
ReadNFC().NDEFRecords 如果是受支持的类型和有效负载,将返回在 NFC 标记上找到的 NDEF 记录表。 带有示例记录的 NDEFRecords 结果。

分步示例

  1. 使用电话格式创建空白画布应用

  2. 添加 Button 控件。

  3. 双击 Button 控件,将按钮文本更改为 Read NFC Tag(或修改 Text 属性)。

  4. 将 Button 控件的 OnSelect 属性设置为此公式,来将一个项添加到我们的集合中:

    With(ReadNFC(),
        Set(id, Coalesce(Identifier, "No ID"));
        ForAll(NDEFRecords, Collect(tagRecords, {ID: id, Value: Coalesce(Text, URI)})))
    

    以上公式作为按钮的 OnSelect 属性输入。

    此公式使用 ReadNFC() 函数读取 NFC 标记,并显示有关结果的类型信息。 然后它会收集读取的 NFC 标记来填充 tagRecords 集合,以在接下来的步骤中用于库。

  5. 添加具有垂直布局的 Gallery 控件。

  6. 出现提示时,选择 tagRecords 集合作为此库的数据源。 此操作将设置 Gallery 控件的 Items 属性。

    库的数据源选择了 tagRecords。

  7. 重新定位 gallery 控件,让它不与按钮重叠,并将布局类型更改为标题和副标题

    库的布局。

  8. 将 gallery 控件中的 Title 公式更改为 ThisItem.Value,将 gallery 控件中的 Subtitle 公式更改为 ThisItem.ID

    您也可以从 gallery 控件中删除 NextArrow,因为它未被使用。

  9. 保存并发布应用。

  10. 由于函数 ReadNFC() 不能在 Power Apps Studio 或 Web 浏览器中使用,请在移动设备上打开您的应用。

    小费

    应用可能需要一些时间显示在您的移动设备上。 如果您没有看到列出的应用,请尝试刷新您的应用列表。

  11. 选择读取 NFC 标记,扫描一个标记。 重复此过程将多个标记添加到集合中。

    移动设备上的应用,显示 NFC 标记读取示例和库中的结果。