NFC lezen configureren

Scant of stopt met scannen naar NFC-tags (near-field communication).

Opties 

  • Actie bepaalt wanneer het scannen van NFC-tags moet worden gestart (Lezen) of gestopt (Annuleren).

De volgende opties worden alleen voor Lezen gebruikt:

  • Script geeft het script aan dat moet worden uitgevoerd wanneer er een tag wordt gelezen, wanneer er een fout optreedt, als de gebruiker de bewerking annuleert of als de bewerking wordt geannuleerd door een andere scriptstap NFC configureren via de optie Annuleren.

  • Met Parameter (optioneel) geeft u een scriptparameter op voor het script.

  • Met Time-out (optioneel) wordt de leesbewerking automatisch geannuleerd na het opgegeven aantal seconden.

  • Met Doorlopend lezen (optioneel) wordt bij een andere waarde dan nul de scriptstap ingesteld voor het lezen van tags totdat de gebruiker op de knop Annuleren tikt, totdat de ingestelde time-out is verstreken of totdat de tijdslimiet is bereikt die wordt opgelegd door het besturingssysteem. Als deze optie nul is of niet is opgegeven, wordt er maar één tag gelezen.

  • Als de waarde niet nul is, zorgt Resultaat opmaken als JSON (optioneel) ervoor dat Script de gegevens van de NFC-tag ontvangt als een JSON-object. Als deze optie nul is of niet is opgegeven, worden de gegevens ontvangen als een meerregelige tekenreeks.

Compatibiliteit 

Product Ondersteund
FileMaker Pro Nee
FileMaker Go Ja
FileMaker WebDirect Nee
FileMaker Server Nee
FileMaker Cloud Nee
FileMaker Data API Nee
Custom Web Publishing Nee

Afkomstig uit versie 

19.0

Beschrijving 

Gebruik deze scriptstap om het scannen van NFC-tags te starten of te stoppen. Deze tags zijn geprogrammeerd met een kleine hoeveelheid gegevens. Gegevens in NFC-tags bestaan vaak uit een URL die protocollen zoals http, tel, fmp en mailto gebruikt.

De Get (ScriptParameter) functie moet worden aangeroepen alsof de optie in het script dat is opgegeven met de optie Script om de gegevens van de NFC-tag te retourneren. Afhankelijk van de instelling van Resultaat opmaken als JSON, worden de gegevens van de NFC-tag geretourneerd als een JSON-object of als een meerregelige tekenreeks.

In de volgende tabel worden de verschillende elementen van het JSON-object beschreven, evenals elke regel van de meerregelige tekenreeks. Raadpleeg de NDEF-specificatie (NFC Data Exchange Format) voor meer informatie over NFC-parameters.

JSON-element

Nummer van regel in tekenreeks

Beschrijving

action

1

De reden waarom het script is aangeroepen. Geeft als resultaat:

  • TagRead als een NFC-tag is gelezen

  • CanceledByUser als de gebruiker op de knop Annuleren heeft getikt

  • CanceledByError als er een fout is opgetreden

error

2

Fouttekst

parameter

3

Optionele scriptparameter opgegeven in het dialoogvenster ‘Script opgeven’

payloadCount

4

Aantal NFC-records die zijn gelezen uit de tag

payloads -

In JSON een matrix van de objecten in de volgende rijen, één voor elke NFC-record. In een meerregelige tekenreeks worden regels 5 tot en met 8 herhaald voor elke NFC-record.

identifier

5

ID van de NFC-record

primary

6

Payload van de NFC-record als een tekenreeks

type

7

Type NFC-record

typeNameFormat

8

Notatie van typenaam van de NFC-record

secondary - Aanvullende payloadgegevens, indien aanwezig (alleen JSON)

Dit is een voorbeeld van de gegevens van een NFC-tag uitgedrukt als een JSON-object:

Kopiëren
{
  "action" : "TagRead",
  "error" : "",
  "parameter" : "Optionele scriptparameter",
  "payloadCount" : 2,
  "payloads"
  [
    {
      "identifier" : "",
      "primary" : "Dit is de inhoud van de NFC-kaart.",
      "secondary" : "en",
      "type" : "T",
      "typeNameFormat" : 1
    },
    {
      "identifier" : "",
      "primary" : "https://example.com",
      "secondary" : "",
      "type" : "U",
      "typeNameFormat" : 1
    }
  ]
}


Dit zijn dezelfde gegevens van een NFC-tag als bij een meerregelige tekenreeks:

Kopiëren
TagRead

Optionele scriptparameter
2

Dit is de inhoud van de NFC-kaart.
T
1

https://example.com
U
1

Opmerkingen 

  • Er kan altijd maar één leesbewerking tegelijk worden uitgevoerd. Als er een leesbewerking actief is terwijl er een annuleringsbewerking wordt aangevraagd, wordt de leesbewerking geannuleerd.

  • De URL openen scriptstap kan worden gebruikt voor het openen van een URL, zoals een URL die wordt ontvangen na het lezen van een NFC-tag.

Voorbeeld 1

Start het lezen van een NFC-tag en stopt als de time-outwaarde is bereikt die is opgegeven in het veld NFC::Time-out. Nadat de tag is gelezen, worden de gegevens in de tag ingesteld in de velden die zijn opgegeven in het subscript Resultaat parseren, dat wordt aangeroepen vanuit het subscript Eén scannen voltooid.

Hoofdscript: Eén scannen

Kopiëren
Ga naar lay-out [ "NFC-tag" ; Animatie: Geen ]
NFC lezen configureren [ Actie: Lezen ; Script: "Eén scannen voltooid" ; Parameter: "De huidige datum en tijd is " & Get (HuidigeTijdstempel) ; Time-out: NFC::Time-out ; Resultaat opmaken als JSON: 1 ]

Subscript 1: Eén scannen voltooid

Kopiëren
Variabele instellen [ $jsParameters ; Waarde: Get (ScriptParameter)]
Script uitvoeren [ Opgegeven: Uit lijst ; "Resultaat parseren" ; Parameter: $scriptParam ]
Aangepast dialoogvenster tonen: [ "Scannen NFC voltooid" ; $scriptParam ]

Subscript 2: Resultaat parseren

Aangezien Resultaat opmaken als JSON in de scriptstap NFC lezen configureren in het script Eén scannen voltooid is ingesteld op een waarde die niet nul is, parseert het script Resultaat parseren de gegevens van de tag als een JSON-object.

Kopiëren
Nieuwe record/nieuw verzoek
Veld instellen [ NFC::Tekst ; Get (ScriptParameter) ]
Veld instellen [ NFC::Tag ; JSONGetElement ( NFC::Tekst ; "payloads[0].primary" ) ]
Veld instellen [ NFC::PayloadCount ; JSONGetElement ( NFC::Tekst ; "payloadCount" ) ]
Veld instellen [ NFC::Resultaat ; JSONGetElement ( NFC::Tekst ; "action" ) & JSONGetElement ( NFC::Tekst ; "error" ) ]
Veld instellen [ NFC::TijdstempelLezen ; Get (HuidigeTijdstempel) ]
Veld instellen [ NFC::ID ; JSONGetElement ( NFC::Tekst ; "payloads[0].identifier" ) ]
Veld instellen [ NFC::Type ; JSONGetElement ( NFC::Tekst ; "payloads[0].type" ) ]
Records/verzoeken vastleggen [ Met dialoogvenster: Uit ]


Als u liever een meerregelige tekenreeks gebruikt, stelt u de optie Resultaat opmaken als JSON in op nul. Vervolgens wijzigt u het script Resultaat parseren in het volgende:

Kopiëren
Nieuwe record/nieuw verzoek
Veld instellen [ NFC::Tekst ; Get (ScriptParameter) ]
Veld instellen [ NFC::Tag ; GetValue (NFC::Tekst ; 6) ]
Veld instellen [ NFC::PayloadCount ; GetValue (NFC::Tekst ; 4) ]
Veld instellen [ NFC::Resultaat ; GetValue (NFC::Tekst ; 1) & GetValue (NFC::Tekst ; 2) ]
Veld instellen [ NFC::TijdstempelLezen ; Get (HuidigeTijdstempel) ]
Veld instellen [ NFC::ID ; GetValue (NFC::Tekst ; 5) ]
Veld instellen [ NFC::Type ; GetValue (NFC::Tekst ; 7) ]
Records/verzoeken vastleggen [ Met dialoogvenster: Uit ]

Voorbeeld 2 

Start het lezen van meerdere tags en stopt als de time-outwaarde is bereikt die is opgegeven in het veld NFC::Time-out of als het scannen wordt geannuleerd. Terwijl de tags worden gelezen, worden de gegevens in de tag ingesteld in de velden die zijn opgegeven in het subscript Resultaat parseren (zie Voorbeeld 1).

Hoofdscript: Meerdere scannen

Kopiëren
NFC lezen configureren [ Actie: Lezen ; Script: "Resultaat parseren" ; Parameter: "Scannen gestart om " & Get (HuidigeTijdstempel) ; Time-out: NFC::Time-out ; Doorlopend lezen: 1 ; Resultaat opmaken als JSON: 1] 
Ga naar lay-out [ "NFC-scanlijst"; Animatie: Geen ]

Voorbeeld 3 

Hiermee wordt het lezen van de tag gestart en wordt er geprobeerd een URL te openen als de NFC-record van het type "U" is, wat aangeeft dat de payload een URL is. Het scannen stopt als de time-outwaarde is bereikt die is opgegeven in het veld NFC::Time-out of als het scannen wordt geannuleerd. Nadat de tag is gelezen, worden de gegevens in de tag ingesteld in de velden die zijn opgegeven in het subscript Resultaat parseren (zie Voorbeeld 1), dat wordt aangeroepen vanuit het subscript Openen vanuit scan.

Hoofdscript: Scannen en openen

Kopiëren
NFC lezen configureren [ Actie: Lezen ; Script: "Openen vanuit scan" ; Parameter: "Scannen gestart om " & Get (HuidigeTijdstempel) ; Time-out: NFC::Time-out ; Resultaat opmaken als JSON: 1 ] 
Ga naar lay-out [ "NFC-scanlijst"; Animatie: Geen ]

Subscript: Openen vanuit scan

Kopiëren
Variabele instellen [ $jsParameters ; Waarde: Get (ScriptParameter)]
Script uitvoeren [ Opgegeven: Uit lijst ; "Resultaat parseren" ; Parameter: $scriptParam ]
Records/verzoeken vastleggen [ Met dialoogvenster: Uit ]
If [ NFC::Type = "U" ]
    URL openen [ Met dialoogvenster: Aan ; NFC::Tag ] 
End If