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 | Sí |
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:
|
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:
{
"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:
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
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
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.
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:
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
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
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
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