Configurar lectura de NFC

Escanee etiquetas NFC (transmisión de datos de proximidad) o detenga el proceso de escaneo.

Temas relacionados 

Opciones 

  • Acción especifica si se debe iniciar (Leer) o detener (Cancelar) el escaneo de etiquetas NFC.

Las siguientes opciones se utilizan solo para Leer:

  • Guión especifica el guión que se ejecutará cuando se lea una etiqueta o se produzca un error, si el usuario cancela la operación, o si otro paso de guión Configurar NFC cancela la operación mediante la opción Cancelar.

  • Parámetro (opcional) especifica un parámetro para el guión.

  • Tiempo de espera (opcional) cancela automáticamente la operación de lectura tras el número especificado de segundos.

  • Lectura continua (opcional); si el valor es distinto a cero, establece el paso de guión para que lea etiquetas hasta que el usuario pulse el botón Cancelar o se cumpla el parámetro de tiempo de espera o hasta que se alcance el límite impuesto por el sistema operativo. Si esta opción es cero o no se especifica, solo se lee una etiqueta.

  • Formatear resultado como JSON (opcional), si el valor es distinto a cero, provoca que el guión reciba los datos de la etiqueta de NFC como un objeto JSON. Si esta opción es cero o no se especifica, recibe los datos como una cadena de varias líneas.

Compatibilidad 

Producto Format
FileMaker Pro No
FileMaker Go
FileMaker WebDirect No
FileMaker Server No
FileMaker Cloud No
FileMaker Data API No
Publicación en la Web personalizada No

Se origina en 

19.0

Descripción 

Utilice este paso de guión para iniciar o detener el proceso de escaneo de etiquetas NFC, que se han programado con una pequeña cantidad de datos. Los datos de las etiquetas NFC suelen ser una dirección URL que utiliza protocolos como http, tel, fmp y mailto.

Debe llamarse a la función Get ( ScriptParameter ) en el guión especificado en la opción Guión para que se devuelva los datos de la etiqueta NFC. En función de la configuración de Formatear resultado como JSON, los datos de la etiqueta NFC se devuelven como un objeto JSON o como una cadena de varias líneas.

En la siguiente tabla, se describe cada elemento del objeto JSON y cada línea de la cadena de varias líneas. Para obtener información sobre los parámetros NFC, consulte la especificación NDEF (NFC Data Exchange Format):

Elemento JSON

Número de línea de cadena

Descripción

action

1

El motivo por el que se ha llamado al guión. Devuelve:

  • TagRead si se ha leído una etiqueta NFC.

  • CanceledByUser si el usuario ha pulsado el botón Cancelar.

  • CanceledByError si se ha producido un error.

error

2

Cadena de error.

parameter

3

El parámetro de guión opcional especificado en el cuadro de diálogo Especificar guión.

payloadCount

4

El número de registros de NFC que se han leído desde la etiqueta.

payloads -

En JSON, una matriz de los objetos en las siguientes filas, una para cada registro NFC. En una cadena de varias líneas, las líneas del 5 al 8 se repiten para cada registro NFC.

identifier

5

Identificador del registro NFC

primary

6

Carga útil del registro NFC como cadena

type

7

Tipo del registro NFC

typeNameFormat

8

Formato de tipo de nombre del registro NFC

secondary - Información de la carga útil adicional, si está presente (solo JSON)

Este es un ejemplo de los datos de una etiqueta NFC como un objeto JSON:

Copiar
{
  "action" : "TagRead",
  "error" : "",
  "parameter" : "Parámetro de guión opcional",
  "payloadCount" : 2,
  "payloads"
  [
    {
      "identifier" : "",
      "primary" : "Este es el contenido de la tarjeta NFC.",
      "secondary" : "en",
      "type" : "T",
      "typeNameFormat" : 1
    },
    {
      "identifier" : "",
      "primary" : "https://ejemplo.com",
      "secondary" : "",
      "type" : "U",
      "typeNameFormat" : 1
    }
  ]
}


Estos son los mismos datos de etiqueta NFC que una cadena de varias líneas:

Copiar
TagRead

Parámetro de guión opcional
2

Este es el contenido de la tarjeta NFC.
T
1

https://ejemplo.com
U
1

Notas 

  • Solo puede realizarse una operación de lectura cada vez. Si hay una operación de lectura en curso cuando se realiza una operación de cancelación, la operación de lectura se cancela.

  • El paso de guión Abrir URL se puede utilizar para abrir una dirección URL como, por ejemplo, una recibida de la lectura de una etiqueta NFC.

Ejemplo 1

Inicia la lectura de una única etiqueta NFC y se detiene después de alcanzar el valor de tiempo de espera especificado en el campo NFC::Tiempo de espera. Después de leer la etiqueta, los datos de la etiqueta se establecen en los campos especificados en el subguión Analizar resultado, al que se llama desde el subguión Escaneo único finalizado.

Guión principal: Escaneo único

Copiar
Ir a la presentación [ "Etiqueta NFC" ; Animación: Ninguno ]
Configurar lectura de NFC [ Acción: Leer ; Guión: "Escaneo único finalizado" ; Parámetro: "La fecha y hora actuales son " & Get ( CurrentTimestamp ) ; Tiempo de espera: NFC::Tiempo de espera; Formatear resultado como JSON: 1 ]

Subguión 1: Escaneo único finalizado

Copiar
Establecer variable [ $scriptParam ; Valor: Get ( ScriptParameter ) ]
Ejecutar guión [ Especificado: Desde la lista; "Analizar resultado" ; Parámetro: $scriptParam ]
Mostrar cuadro de diálogo personalizado [ "Escaneo de NFC finalizado" ; $scriptParam ]

Subguión 2: Analizar resultado

Debido a que Formatear resultado como JSON se ha establecido en un valor distinto a cero en el paso de guión Configurar lectura de NFC en el guión de Escaneo único, el guión Analizar resultado analiza los datos de la etiqueta como un objeto JSON.

Copiar
Nuevo registro/petición
Establecer campo [ NFC::Texto ; Get ( ScriptParameter ) ]
Establecer campo [ NFC::Etiqueta ; JSONGetElement ( NFC::Texto ; "payloads[0].primary" ) ]
Establecer campo [ NFC::RecuentoCarga; JSONGetElement ( NFC::Texto ; "payloadCount" ) ]
Establecer campo [ NFC::Resultado; JSONGetElement ( NFC::Texto ; "action" ) & JSONGetElement ( NFC::Texto ; "error" ) ]
Establecer campo [ NFC::FechaHoraLectura ; Get ( CurrentTimestamp ) ]
Establecer campo [ NFC::ID ; JSONGetElement ( NFC::Texto ; "payloads[0].identifier" ) ]
Establecer campo [ NFC::Tipo ; JSONGetElement ( NFC::Texto ; "payloads[0].type" ) ]
Consignar registros/peticiones [ Con diálogo: Inactivo ]


Si prefiere trabajar con una cadena de varias líneas, establezca la opción Formatear resultado como JSON en cero. A continuación, cambie el guión Analizar resultado de la siguiente forma:

Copiar
Nuevo registro/petición
Establecer campo [ NFC::Texto ; Get ( ScriptParameter ) ]
Establecer campo [ NFC::Etiqueta ; GetValue ( NFC::Texto ; 6 ) ]
Establecer campo [ NFC::RecuentoCarga ; GetValue ( NFC::Texto ; 4 ) ]
Establecer campo [ NFC::Resultado ; GetValue ( NFC::Texto ; 1) & GetValue ( NFC::Texto ; 2 ) ]
Establecer campo [ NFC::FechaHoraLectura ; Get ( CurrentTimestamp ) ]
Establecer campo [ NFC::ID ; GetValue ( NFC::Texto ; 5) ]
Establecer campo [ NFC::Tipo ; GetValue ( NFC::Texto ; 7) ]
Consignar registros/peticiones [ Con diálogo: Inactivo ]

Ejemplo 2 

Inicia la lectura de varias etiquetas y se detiene después de alcanzar el valor de tiempo de espera especificado en el campo NFC::Tiempo de espera o si se ha cancelado el proceso de escaneo. A medida que se leen las etiquetas, los datos de la etiqueta se establecen en los campos especificados en el subguión Analizar resultado (consulte el Ejemplo 1).

Guión principal: Escaneo múltiple

Copiar
Configurar lectura de NFC [ Acción: Leer ; Guión: "Analizar resultado" ; Parámetro: "Escaneo iniciado a la(s) " & Get ( CurrentTimestamp ) ; Tiempo de espera: NFC::Tiempo de espera ; Lectura continua: 1 ; Formatear resultado como JSON: 1] 
Ir a la presentación [ "Lista de escaneo de NFC" ; Animación: Ninguno ]

Ejemplo 3 

Inicia la lectura de etiquetas e intenta abrir una dirección URL si el tipo de registro NFC es "U", lo que indica que la carga útil es una dirección URL. El escaneo se detiene después de alcanzar el valor de tiempo de espera especificado en el campo NFC::Tiempo de espera o si se ha cancelado el proceso. Después de leer la etiqueta, los datos de la etiqueta se establecen en los campos especificados en el subguión Analizar resultado (consulte el Ejemplo 1), al que se llama desde el subguión Abrir desde escaneo.

Guión principal: Escanear y abrir

Copiar
Configurar lectura de NFC [ Acción: Leer ; Guión: "Abrir desde escaneo" ; Parámetro: "Escaneo iniciado a la(s) " & Get ( CurrentTimestamp ) ; Tiempo de espera: NFC::Tiempo de espera; Formatear resultado como JSON: 1 ] 
Ir a la presentación [ "Lista de escaneo de NFC" ; Animación: Ninguno ]

Subguión: Abrir desde escaneo

Copiar
Establecer variable [ $scriptParam ; Valor: Get ( ScriptParameter ) ]
Ejecutar guión [ Especificado: Desde la lista; "Analizar resultado" ; Parámetro: $scriptParam ]
Consignar registros/peticiones [ Con diálogo: Inactivo ]
If [ NFC::Tipo = "U" ]
    Abrir URL [ Con diálogo: Activo ; NFC::Etiqueta ] 
End If