Configura lettura NFC
Esegue o arresta la scansione per i tag NFC (near field communication).
Vedere anche
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 | Sì |
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:
|
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:
{
"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:
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
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
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.
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:
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
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
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
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