Configurar a leitura NFC
Verifica ou interrompe a verificação de etiquetas NFC (Near Field Communication).
Consulte também
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:
|
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:
{
"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:
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
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
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.
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:
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
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
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
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