Configura lettura NFC

Esegue o arresta la scansione per i tag NFC (near field communication).

Opzioni 

  • Azione specifica se avviare (Leggi) o arrestare (Annulla) la scansione per i tag NFC.

Le seguenti opzioni sono utilizzate solo per Leggi:

  • Script specifica lo script da eseguire quando viene letto un tag, si verifica un errore, l'utente annulla l'operazione o l'operazione viene annullata da un'altra istruzione di script Configura NFC utilizzando l'opzione Annulla.

  • Parametro (opzionale) specifica un parametro di script per lo script.

  • Timeout (opzionale) annulla automaticamente l'operazione Leggi dopo il numero specificato di secondi.

  • Lettura continua (opzionale), se il valore è diverso da zero, imposta l'istruzione di script in modo che i tag vengano letti finché l'utente non tocca il pulsante Annulla, non si raggiunge il parametro di timeout o fino a quando non viene raggiunto il limite di tempo imposto dal sistema operativo. Se questa opzione è zero o non è specificata, viene letto solo un tag.

  • Risultato del formato come JSON (opzionale), se il valore è diverso da zero, fa ricevere allo Script i dati del tag NFC come un oggetto JSON. Se questa opzione è zero o non è specificata, riceve i dati come una stringa su più righe.

Compatibilità 

Prodotto Supportata
FileMaker Pro No
FileMaker Go
FileMaker WebDirect No
FileMaker Server No
FileMaker Cloud No
FileMaker Data API No
Pubblicazione Web personalizzata No

Creata nella versione 

19.0

Descrizione 

Utilizzare questa istruzione di script per eseguire o arrestare la scansione per i tag NFC programmati con una quantità ridotta di dati. Spesso i dati nei tag NFC corrispondono a un URL che utilizza protocolli come http, tel, fmp e mailto.

Per restituire i dati del tag NFC, è necessario richiamare la funzione Get ( ParametroScript ) nello script specificato nell'opzione Script. A seconda dell'impostazione di Risultato del formato come JSON, i dati del tag NFC vengono restituiti come un oggetto JSON o come una stringa a più righe.

La seguente tabella descrive ogni elemento nell'oggetto JSON e ogni riga della stringa a più righe. Per ulteriori informazioni sui parametri NFC, vedere la specifica NFC Data Exchange Format (NDEF):

Elemento JSON

Numero riga stringa

Descrizione

action

1

Il motivo per cui è stato richiamato lo script. Restituisce:

  • TagRead se è stato letto un tag NFC

  • CanceledByUser se l'utente ha toccato il pulsante Annulla

  • CanceledByError se si è verificato un errore

error

2

Stringa di errore

parameter

3

Parametro di script facoltativo specificato nella finestra di dialogo Specifica script

payloadCount

4

Numero di record NFC letti dal tag

payloads -

In JSON, una matrice di oggetti nelle righe seguenti, una per ciascun record NFC. In una stringa a più righe, le righe dalla 5 alla 8 vengono ripetute per ogni record NFC.

identifier

5

Identificativo del record NFC

primary

6

Payload del record NFC come stringa

type

7

Tipo di record NFC

typeNameFormat

8

Formato del nome del tipo del record NFC

secondary - Informazioni di payload aggiuntive, se presenti (solo JSON)

Questo è un esempio di dati di un tag NFC come oggetto JSON:

Copia
{
  "action" : "TagRead",
  "error" : "",
  "parameter" : "Parametro script facoltativo",
  "payloadCount" : 2,
  "payloads"
  [
    {
      "identifier" : "",
      "primary" : "Questo è il contentuto dalla scheda NFC.",
      "secondary" : "it",
      "type" : "T",
      "typeNameFormat" : 1
    },
    {
      "identifier" : "",
      "primary" : "https://esempio.com",
      "secondary" : "",
      "type" : "U",
      "typeNameFormat" : 1
    }
  ]
}


Questi sono gli stessi dati del tag NFC dati come stringa a più righe:

Copia
TagRead

Parametro script facoltativo
2

Questo è il contenuto dalla scheda NFC.
T
1

https://example.com
U
1

Note 

  • È possibile eseguire solo un'operazione di lettura per volta. Se è in corso un'operazione di lettura quando viene eseguita un'operazione di annullamento, l'operazione di lettura viene annullata.

  • L’istruzione di script Apri URL può essere utilizzata per aprire un URL, ad esempio una ricevuta dalla lettura di un tag NFC.

Esempio 1

Avvia la lettura di un singolo tag NFC e l'arresta quando viene raggiunto il valore del timeout specificato nel campo NFC::Timeout. Dopo aver letto il tag, i dati nel tag vengono impostati nei campi specificati nel subscript Analizza risultato, richiamato dal subscript Scansione singola terminata.

Script principale: Scansione singola

Copia
Vai al formato ["Tag NFC"; Animazione: Nessuna]
Configura lettura NFC [Azione: Leggi; Script: "Scansione singola terminata"; Parametro: "La data e l'ora correnti sono " & Get ( IndicatoreDataOraCorrente ); Timeout: NFC::Timeout ; Risultato del formato come JSON: 1 ]

Subscript 1: Scansione singola terminata

Copia
Imposta variabile [$paramScript; Valore: Get ( ParametroScript )]
Esegui script [Specificato: Da elenco; "Analizza risultato"; Parametro: $paramScript]
Mostra finestra personalizz. ["Scansione NFC terminata"; $paramScript]

Subscript 2: Analizza risultato

Poiché Risultato del formato come JSON è impostato su un valore diverso da zero nell'istruzione di script Configura lettura NFC dello script Scansione singola, lo script Analizza risultato analizza i dati dei tag dati come oggetto JSON.

Copia
Nuovo record/richiesta
Imposta campo [NFC::Testo; Get ( ParametroScript )]
Imposta campo [NFC::Tag; JSONGetElement ( NFC::Testo; "payloads[0].primary" )]
Imposta campo [NFC::PayloadCount ; JSONGetElement ( NFC::Testo; "payloadCount" )]
Imposta campo [NFC::Risultato ; JSONGetElement ( NFC::Testo ; "action" ) & JSONGetElement ( NFC::Testo ; "error" )]
Imposta campo [NFC::IndicatoreDataOraLettura; Get ( IndicatoreDataOraCorrente )]
Imposta campo [NFC::ID ; JSONGetElement ( NFC::Testo ; "payloads[0].identifier" ) ]
Imposta campo [NFC::Tipo ; JSONGetElement ( NFC::Testo ; "payloads[0].type" )]
Salva record/richieste [Con finestra di dialogo: Disattivata]


Se si preferisce lavorare con una stringa a più righe, impostare l’opzione Risultato del formato come JSON su zero. Quindi modificare lo script Analizza risultato come segue:

Copia
Nuovo record/richiesta
Imposta campo [NFC::Testo; Get ( ParametroScript )]
Imposta campo [NFC::Tag; RicavaValore ( NFC::Testo ; 6 )]
Imposta campo [NFC::PayloadCount; RicavaValore ( NFC::Testo ; 4 )]
Imposta campo [NFC::Risultato; RicavaValore ( NFC::Testo ; 1 ) & RicavaValore ( NFC::Testo ; 2 )]
Imposta campo [NFC::IndicatoreDataOraLettura; Get ( IndicatoreDataOraCorrente )]
Imposta campo [NFC::ID; RicavaValore ( NFC::Testo ; 5 )]
Imposta campo [NFC::Tipo; RicavaValore ( NFC::Testo ; 7 )]
Salva record/richieste [Con finestra di dialogo: Disattivata]

Esempio 2 

Avvia la lettura di più tag e l'arresta quando viene raggiunto il valore del timeout specificato nel campo NFC::Timeout o se la scansione viene annullata. Dopo aver letto i tag, i dati nel tag vengono impostati nei campi specificati nel subscript Analizza risultato (vedere l’Esempio 1).

Script principale: Scansione multipla

Copia
Configura lettura NFC [Azione: Leggi; Script: "Analizza risultato"; Parametro: "Scansione avviata " & Get ( IndicatoreDataOraCorrente ); Timeout: NFC::Timeout; Lettura continua: 1 ; Risultato del formato come JSON: 1] 
Vai al formato ["Elenco scansioni NFC"; Animazione: Nessuna]

Esempio 3 

Avvia la lettura dei tag e tenta di aprire un URL se il tipo di record NFC è "U" a indicare che il payload è un URL. La scansione si arresta quando viene raggiunto il valore del timeout specificato nel campo NFC::Timeout o se la scansione viene annullata. Dopo aver letto il tag, i dati nel tag vengono impostati nei campi specificati nel subscript Analizza risultato (vedere l'Esempio 1), richiamato dal subscript Apri da scansione.

Script principale: Scansiona e apri

Copia
Configura lettura NFC [Azione: Leggi; Script: "Apri da scansione"; Parametro: "Scansione avviata " & Get ( IndicatoreDataOraCorrente ); Timeout: NFC::Timeout ; Risultato del formato come JSON: 1 ] 
Vai al formato ["Elenco scansioni NFC"; Animazione: Nessuna]

Subscript: Apri da scansione

Copia
Imposta variabile [$paramScript; Valore: Get ( ParametroScript )]
Esegui script [Specificato: Da elenco; "Analizza risultato"; Parametro: $paramScript]
Salva record/richieste [Con finestra di dialogo: Disattivata]
If [ NFC::Tipo = "U" ]
    Apri URL [Con finestra di dialogo: Attivata; NFC::Tag] 
End If