Configurer lecture du protocole NFC

Recherche ou cesse de rechercher les balises NFC (Near Field Communication).

Options 

  • Action indique le démarrage (Lire) ou l'arrêt (Annuler) de la lecture des balises NFC.

Les options suivantes sont utilisées uniquement pour l'action Lire :

  • Script indique le script à exécuter lorsqu'une balise est lue, lorsqu'une erreur se produit, si l'utilisateur annule l'opération ou si l'opération est annulée par une autre action de script Configurer lecture du protocole NFC à l'aide de l'option Annuler.

  • Paramètre (facultatif) spécifie un paramètre de script pour le script.

  • Expiration (facultatif) annule automatiquement l'opération Lire après le nombre de secondes spécifié.

  • Lecture continue (facultatif), si la valeur est différente de zéro, indique la lecture des balises jusqu'à ce que l'utilisateur appuie sur le bouton Annuler, jusqu'à ce que le paramètre Délai soit atteint ou jusqu'à ce que le délai maximal imposé par le système d'exploitation est atteint. Si cette option a une valeur zéro ou n'est pas spécifiée, une seule balise est lue.

  • Résultat au format JSON (facultatif), si la valeur est différente de zéro, force l'option Script à recevoir les données de la balise NFC sous forme d'objet JSON. Si cette option a une valeur de zéro ou n'est pas spécifiée, elle reçoit les données sous forme de chaîne multiligne.

Compatibilité 

Produit Prise en charge
FileMaker Pro Non
FileMaker Go Oui
FileMaker WebDirect Non
FileMaker Server Non
FileMaker Cloud Non
FileMaker Data API Non
Publication Web personnalisée Non

Provient de la version 

19.0

Description 

Utilisez cette action de script pour démarrer ou arrêter la lecture des balises NFC, qui sont programmées avec une petite quantité de données. Les données contenues dans une balise NFC sont souvent une URL qui utilise des protocoles, tels que http, tel, fmp et mailto.

La fonction Obtenir ( ParamètreScript ) doit être appelée dans l'option Script spécifiée afin de renvoyer les données de la balise NFC. Selon la configuration de l'option Résultat au format JSON, les données de la balise NFC sont renvoyées sous forme d'objet JSON ou de chaîne multiligne.

Le tableau suivant décrit chaque élément de l'objet JSON et chaque ligne de la chaîne multiligne. Pour plus d'informations sur les paramètres NFC, consultez la spécification NDEF (NFC Data Exchange Format) :

Elément JSON

Numéro de ligne de la chaîne

Description

action

1

Raison pour laquelle le script a été appelé Résultat :

  • TagRead si une balise NFC a été lue

  • CanceledByUser si l'utilisateur a appuyé sur le bouton Annuler

  • CanceledByError si une erreur s'est produite

error

2

Chaîne d'erreur

parameter

3

Paramètre de script facultatif spécifié dans la boîte de dialogue Définir le script

payloadCount

4

Nombre d'enregistrements NFC lus depuis la balise

payloads -

Dans JSON, un tableau des objets dans les lignes suivantes, une pour chaque enregistrement NFC. Dans une chaîne multigne, les lignes 5 à 8 sont répétées pour chaque enregistrement NFC.

identifier

5

Identifiant de l'enregistrement NFC

primary

6

Charge utile de l'enregistrement NFC sous forme de chaîne

type

7

Type d'enregistrement NFC

typeNameFormat

8

Format de nom du type d'enregistrement NFC

secondary - Informations supplémentaires sur la charge utile, le cas échéant (JSON uniquement)

Voici un exemple de données d'une balise NFC sous forme d'objet JSON :

Copier
{
  "action" : "TagRead",
  "error" : "",
  "parameter" : "Paramètre de script facultatif",
  "payloadCount" : 2,
  "payloads" : 
  [
    {
      "identifier" : "",
      "primary" : "Il s'agit du contenu de la carte NFC.",
      "secondary" : "en",
      "type" : "T",
      "typeNameFormat" : 1
    },
    {
      "identifier" : "",
      "primary" : "https://exemple.com",
      "secondary" : "",
      "type" : "U",
      "typeNameFormat" : 1
    }
  ]
}


Voici les mêmes données de balise NFC sous forme de chaîne multiligne :

Copier
TagRead

Paramètre de script facultatif
2

Il s'agit du contenu de la carte NFC.
T
1

https://exemple.com
U
1

Remarques 

  • Une seule opération Lire peut être en cours. Si une opération Lire est en cours lorsqu'une opération Annuler est exécutée, l'opération Lire est annulée.

  • L'action de script Ouvrir URL peut être utilisée pour ouvrir une URL, telle que celle reçue lors de la lecture d'une balise NFC.

Exemple 1

Lance la lecture d'une balise NFC et l'arrête après avoir atteint la valeur de délai indiquée dans la rubrique NFC::Délai. Une fois la balise lue, les données de la balise sont définies dans les rubriques spécifiées dans le sous-script Analyser le résultat, qui est appelé depuis le sous-script Lecture unique terminée.

Script principal : Lecture unique

Copier
Activer modèle [ "Balise NFC" ; Animation: Aucune ]
Configurer lecture du protocole NFC [ Action : Lire ; Script ; "Lecture unique terminée" ; Paramètre: "La date et l'heure actuelles sont " & Obtenir ( HorodatageActuel ) ; Expiration: NFC::Délai ; Résultat au format JSON: 1 ]

Sous-script 1 : Lecture unique terminée

Copier
Définir variable [ $scriptParam ; Valeur: Obtenir ( ParamètreScript ) ]
Exécuter script [ Spécifique: Dans la liste; "Analyser le résultat" ; Paramètre: $scriptParam ]
Ouvrir boîte dial. person.: [ "Lecture NFC terminée" ; $scriptParam ]

Sous-script 2 : Analyser le résultat

Comme l'option Résultat au format JSON est définie sur une valeur différente de zéro dans l'action de script Configurer lecture du protocole NFC du script Lecture unique, le script Analyser le résultat analyse les données de la balise en tant qu'objet JSON.

Copier
Nouvel enreg./requête
Définir rubrique [ NFC::Texte ; Obtenir ( ParamètreScript ) ]
Définir rubrique [ NFC::Balise ; JSONGetElement ( NFC::Texte ; "payloads[0].primary" ) ]
Définir rubrique [ NFC::NombreChargesUtiles ; JSONGetElement ( NFC::Texte ; "payloadCount" ) ]
Définir rubrique[ NFC::Résultat ; JSONGetElement ( NFC::Texte ; "action" ) & JSONGetElement ( NFC::Texte ; "error" ) ]
Définir rubrique [ NFC::HorodatageLecture ; Obtenir ( HorodatageActuel ) ]
Définir rubrique [ NFC::ID ; JSONGetElement ( NFC::Texte ; "payloads[0].identifier" ) ]
Définir rubrique [ NFC::Type ; JSONGetElement ( NFC::Texte ; "payloads[0].type" ) ]
Valider enreg./requêtes [ Avec fenêtre: Non ]


Si vous préférez utiliser une chaîne multiligne, définissez l'option Résultat au format JSON sur zéro. Puis, modifiez le script Analyser le résultat comme suit :

Copier
Nouvel enreg./requête
Définir rubrique [ NFC::Texte ; Obtenir ( ParamètreScript ) ]
Définir rubrique [ NFC::Balise ; ObtenirValeur ( NFC::Texte ; 6 ) ]
Définir rubrique [ NFC::NombreChargesUtiles ; ObtenirValeur ( NFC::Texte ; 4 ) ]
Définir rubrique [ NFC::Résultat ; ObtenirValeur ( NFC::Texte ; 1) & ObtenirValeur ( NFC::Texte ; 2 ) ]
Définir rubrique [ NFC::HorodatageLecture ; Obtenir ( HorodatageActuel ) ]
Définir rubrique [ NFC::ID ; ObtenirValeur ( NFC::Texte ; 5 ) ]
Définir rubrique [ NFC::Type ; ObtenirValeur ( NFC::Texte ; 7 ) ]
Valider enreg./requêtes [ Avec fenêtre: Non ]

Exemple 2 

Lance la lecture de plusieurs balises NFC et l'arrête après avoir atteint la valeur de délai indiquée dans la rubrique NFC::Délai ou si la lecture est annulée. Alors que les balises sont lues, les données de la balise sont définies dans les rubriques spécifiées dans le sous-script Analyser le résultat (consultez l'Exemple 1).

Script principal : Lecture multiple

Copier
Configurer lecture du protocole NFC [ Action : Lire ; Script ; "Analyser le résultat " ; Paramètre: "Début de la lecture à " & Obtenir ( HorodatageActuel ) ; Délai: NFC::Délai ; Lecture continue: 1 ; Résultat au format JSON: 1] 
Activer modèle [ "Liste des lectures NFC" ; Animation: Aucune ]

Exemple 3 

Lance la lecture des balises et tente d'ouvrir une URL si le type d'enregistrement NFC est «U », indiquant que la charge utile est une URL. Arrête la lecture après avoir atteint la valeur de délai indiquée dans la rubrique NFC::Délai ou si la lecture est annulée. Une fois la balise lue, les données de la balise sont définies dans les rubriques spécifiées du sous-script Analyser le résultat, (consultez l'Exemple 1), qui est appelé par le sous-script Ouvrir depuis la lecture.

Script principal : Lire et ouvrir

Copier
Configurer lecture du protocole NFC [ Action : Lire ; Script ; "Ouvrir depuis la lecture" ; Paramètre: "Début de la lecture à " & Obtenir ( HorodatageActuel ) ; Délai: NFC::Délai ; Résultat au format JSON: 1 ] 
Activer modèle [ "Liste des lectures NFC" ; Animation: Aucune ]

Sous-script : Ouvrir depuis la lecture

Copier
Définir variable [ $scriptParam ; Valeur: Obtenir ( ParamètreScript ) ]
Exécuter script [ Spécifique: Dans la liste; "Analyser le résultat" ; Paramètre: $scriptParam ]
Valider enreg./requêtes [ Avec fenêtre: Non ]
Si [ NFC::Type = "U" ]
    Ouvrir URL [ Avec boîte de dialogue: Oui ; NFC::Balise ] 
Fin de si