Configurar a leitura NFC

Verifica ou interrompe a verificação de etiquetas NFC (Near Field Communication).

Opções 

  • Ação especifica se deve iniciar (Ler) ou parar (Cancelar) o escaneamento de etiquetas NFC.

As opções a seguir são usadas somente para Leitura:

  • Script especifica o script a ser executado quando uma tag é lida, quando ocorre um erro, se o usuário cancelar a operação ou se a operação for cancelada por outra etapa do script Configurar NFC usando a opção Cancelar.

  • Parâmetro (opcional) especifica um parâmetro de script para o script especificado.

  • Tempo limite (opcional) cancela automaticamente a operação de Leitura após o número especificado de segundos.

  • Leitura contínua (opcional), se o valor for diferente de zero, define a etapa do script para ler etiquetas até que o usuário toque no botão Cancelar, até que o parâmetro de tempo limite seja atingido ou até que o tempo limite imposto pelo sistema operacional seja atingido. Se essa opção for zero ou não for especificada, apenas uma tag será lida.

  • Formatar resultado como JSON (opcional), se o valor não for zero, o Script receberá os dados da etiqueta NFC como um objeto JSON. Se essa opção for zero ou não for especificada, o script receberá os dados como uma string de várias linhas.

Compatibilidade 

Produto Compatível
FileMaker Pro Não
FileMaker Go Sim
FileMaker WebDirect Não
FileMaker Server Não
FileMaker Cloud Não
FileMaker Data API Não
Publicação na Web personalizada Não

Originada na versão 

19.0

Descrição 

Use essa etapa do script para verificar ou interromper o escaneamento de etiquetas NFC programadas com uma pequena quantidade de dados. Em geral, os dados nas etiquetas NFC são um URL que usa protocolos, como http, tel, fmp e mailto.

A Função Get(ScriptParameter) deve ser chamada no script especificado na opção Script para retornar os dados da etiqueta NFC. Dependendo da configuração de Formatar resultado como JSON, os dados da etiqueta NFC serão retornados como um objeto JSON ou como uma string de várias linhas.

A tabela a seguir descreve cada elemento do objeto JSON e cada linha da string de várias linhas. Para obter mais informações sobre parâmetros NFC, consulte a especificação de Formato de troca de dados de NFC (NDEF, NFC Data Exchange Format).

Elemento JSON

Número da linha da string

Descrição

action

1

O motivo pelo qual o script foi chamado. Retorna:

  • TagRead se uma etiqueta NFC tiver sido lida

  • CanceledByUser se o usuário tiver tocado no botão Cancelar

  • CanceledByError se ocorreu um erro

error

2

String de erro

parameter

3

Parâmetro de script opcional especificado na caixa de diálogo Especificar script

payloadCount

4

Número de registros de NFC lidos a partir da etiqueta

payloads -

Em JSON, uma matriz dos objetos nas seguintes linhas, uma para cada registro de NFC. Em uma string de várias linhas, as linhas de 5 a 8 são repetidas para cada registro de NFC.

identifier

5

Identificador do registro de NFC

primary

6

Carga do registro de NFC como uma string

type

7

Tipo do registro de NFC

typeNameFormat

8

Formato de nome do tipo do registro de NFC

secondary - Informações adicionais de carga, se houver (somente JSON)

Este é um exemplo de dados de etiqueta NFC como um objeto JSON:

Copiar
{
  "action" : "TagRead",
  "error" : "",
  "parameter" : "Parâmetro de script opcional",
  "payloadCount" : 2,
  "payloads"
  [
    {
      "identifier" : "",
      "primary" : "Este é o conteúdo da placa NFC.",
      "secondary" : "en",
      "type" : "T",
      "typeNameFormat" : 1
    },
    {
      "identifier" : "",
      "primary" : "https://exemplo.com",
      "secondary" : "",
      "type" : "U",
      "typeNameFormat" : 1
    }
  ]
}


Esses dados de etiqueta NFC são iguais aos de uma string de várias linhas:

Copiar
TagRead

Parâmetro de script opcional
2

Este é o conteúdo da placa NFC.
T
1

https://example.com
U
1

Notas 

  • Somente uma operação de leitura pode ocorrer por vez. Se uma operação de leitura estiver em andamento quando ocorrer uma operação de cancelamento, a operação de leitura será cancelada.

  • A Etapa de script Abrir URL pode ser usada para abrir uma URL, como a que foi recebida a partir da leitura de uma etiqueta NFC.

Exemplo 1

Inicia a leitura de uma única etiqueta NFC e para após atingir o valor de tempo limite especificado no campo NFC::Timeout. Após a leitura da etiqueta, os dados da etiqueta são definidos nos campos especificados no subscript Resultado da Análise, que é chamado a partir do subscript Verificar Finalizado.

Script principal: Verificar

Copiar
Ir para layout [ "Etiqueta NFC" ; Animação: Nenhum ]
Configurar leitura NFC [ Ação: Leitura ; Script: "Verificar Finalizado" ; Parâmetro: "A data e hora atuais são " & Get (CurrentTimestamp) ; Tempo limite: NFC::Timeout ; Formatar resultado como JSON: 1 ]

Subscript 1: Verificar Finalizado

Copiar
Definir variável [ $scriptParam ; Value: Get ( ScriptParameter ) ]
Realizar script [ Especificado: Da lista ; "Resultado da Análise" ; Parâmetro: $scriptParam ]
Mostrar caixa de diálogo: [ "Verificação NFC concluída” ; $scriptParam ]

Subscript 2: Resultado da Análise

Como Formatar resultado como JSON está definido com um valor diferente de zero na etapa de script Configurar leitura de NFC do script Verificar, o script Resultado da Análise analisará os dados da etiqueta como um objeto JSON.

Copiar
Novo registro/solicitação
Definir campo [ NFC::Text ; Get ( ScriptParameter ) ]
Definir campo [ NFC::Tag ; JSONGetElement ( NFC::Text ; "payloads[0].primary" ) ]
Definir campo [ NFC::PayloadCount ; JSONGetElement ( NFC::Text ; "payloadCount" ) ]
Definir campo [ NFC::Result ; JSONGetElement ( NFC::Text ; "action" ) & JSONGetElement ( NFC::Text ; "error" ) ]
Definir campo [ NFC::ReadTimestamp ; Get ( CurrentTimestamp ) ]
Definir campo [ NFC::ID ; JSONGetElement ( NFC::Text ; "payloads[0].identifier" ) ]
Definir campo [ NFC::Type ; JSONGetElement ( NFC::Text ; "payloads[0].type" ) ]
Confirmar registros/solicitações [ Com diálogo: Desativado ]


Se você preferir trabalhar com uma string de várias linhas, defina como zero a opção Formatar resultado como JSON. Em seguida, altere o script Resultado da Análise com os seguintes valores:

Copiar
Novo registro/solicitação
Definir campo [ NFC::Text ; Get ( ScriptParameter ) ]
Definir campo [ NFC::Tag ; GetValue ( NFC::Text ; 6 ) ]
Definir campo [ NFC::PayloadCount ; GetValue ( NFC::Text ; 4 ) ]
Definir campo [ NFC::Result ; GetValue ( NFC::Text ; 1) & GetValue ( NFC::Text ; 2 ) ]
Definir campo [ NFC::ReadTimestamp ; Get ( CurrentTimestamp ) ]
Definir campo [ NFC::ID ; GetValue ( NFC::Text ; 5) ]
Definir campo [ NFC::Type ; GetValue ( NFC::Text ; 7) ]
Confirmar registros/solicitações [ Com diálogo: Desativado ]

Exemplo 2 

Inicia a leitura de várias etiquetas e para após atingir o valor de tempo limite especificado no campo NFC::Timeout ou se a verificação for cancelada. Conforme as etiquetas são lidas, os dados na etiqueta são definidos nos campos especificados no subscript Resultado da Análise (consulte o Exemplo 1).

Script principal: Verificar vários

Copiar
Configurar leitura NFC [ Ação: Leitura ; Script: "Resultado da Análise" ; Parameter: "A verificação começou às" & Get (CurrentTimestamp) ; Tempo limite: NFC::Timeout ; Leitura Contínua: 1 ; Formatar resultado como JSON: 1] 
Ir para layout [ "Lista de Verificação NFC"; Animação: Nenhum ]

Exemplo 3 

Inicia a leitura da etiqueta e tenta abrir uma URL se o tipo do registro de NFC for "U," indicando que a carga é uma URL. A verificação será interrompida após atingir o valor de tempo limite especificado no campo NFC::Timeout ou se ela for cancelada. Após a leitura da etiqueta, os dados na tag são definidos nos campos especificados no subscript Resultado da Análise (consulte o Exemplo 1), que é chamado a partir do subscript Abrir da verificação.

Script principal: Verificar e abrir

Copiar
Configurar leitura NFC [ Ação: Leitura ; Script: "Abrir da verificação "; Parâmetro: "A verificação começou às" & Get (CurrentTimestamp) ; Tempo limite: NFC::Timeout ; Formatar resultado como JSON: 1 ] 
Ir para layout [ "Lista de Verificação NFC"; Animação: Nenhum ]

Subscript: Abrir da verificação

Copiar
Definir variável [ $scriptParam ; Value: Get ( ScriptParameter ) ]
Realizar script [ Especificado: Da lista ; "Resultado da Análise" ; Parâmetro: $scriptParam ]
Confirmar registros/solicitações [ Com diálogo: Desativado ]
If [ NFC::Type = "U" ]
    Abrir URL [ Com diálogo: Em ; NFC::Tag ] 
End If