Konfigurera NFC-läsning

Söker efter eller slutar söka efter NFC-taggar (Near Field Communication).

Tillval 

  • Åtgärd anger om sökningen efter NFC-taggar ska startas (Läs) eller avslutas (Avbryt).

Följande tillval används enbart för Läs:

  • Script anger vilket script som ska köras när en tagg avläses, när ett fel uppstår, om användaren avbryter åtgärden eller om åtgärden avbryts av en annan instans av scriptsteget Konfigurera NFC som använder tillvalet Avbryt.

  • Parameter (inte obligatoriskt) anger en scriptparameter för scriptet.

  • Timeout (inte obligatoriskt) avbryter automatiskt läsåtgärden efter angivet antal sekunder.

  • Kontinuerlig läsning (inte obligatoriskt) anger, om värdet inte är noll, att scriptsteget ska läsa taggar tills användaren trycker på knappen Avbryt, tills parametern Timeout uppfylls eller tills operativsystemets tidsgräns nås. Om det här tillvalet är noll eller inte anges läses endast en tagg.

  • Formatera resultat som JSON (inte obligatoriskt) gör, om värdet inte är noll, att Script tar emot NFC-taggens data som ett JSON-objekt. Om det här tillvalet är noll eller inte har angetts tas data emot som en flerradig sträng.

Kompatibilitet 

Produkt Stöds
FileMaker Pro Nej
FileMaker Go Ja
FileMaker WebDirect Nej
FileMaker Server Nej
FileMaker Cloud Nej
FileMaker Data API Nej
Anpassad webbpublicering Nej

Ursprungsversion 

19.0

Beskrivning 

Använd det här scriptsteget för att söka efter eller sluta söka efter NFC-taggar, som är programmerade med små datamängder. Data i NFC-taggar är ofta en URL som använder protokoll som http, tel, fmp och mailto.

I det script som anges i tillvalet Script måste Funktionen Get ( Scriptparameter ) anropas för att återgå till NFC-taggens data. Beroende på inställningen av Formatera resultat som JSON returneras NFC-taggens data antingen som ett JSON-objekt eller som en flerradig sträng.

Tabellen nedan beskriver varje element i JSON-objektet och varje rad i den flerradiga strängen. Mer information om NFC-parametrar finns i specifikationen för NFC Data Exchange Format (NDEF).

JSON-element

Radnummer i strängen

Beskrivning

action

1

Anledningen till att scriptet anropades. Returnerar:

  • TagRead om en NFC-tagg har lästs

  • CanceledByUser om användaren tryckte på knappen Avbryt

  • CanceledByError om ett fel uppstod

error

2

Felsträng

parameter

3

Icke-obligatorisk scriptparameter som anges i dialogrutan Ange script

payloadCount

4

Antal NFC-poster som lästes från taggen

payloads -

I JSON, en matris av objekten på följande rader, en för varje NFC-post. I en flerradig sträng upprepas rad 5 till 8 för varje NFC-post.

identifier

5

NFC-postens identifierare

primary

6

NFC-postens nyttolast som en sträng

type

7

NFC-postens typ

typeNameFormat

8

NFC-postens typnamnsformat

secondary - Ytterligare nyttolastinformation, om sådan finns (endast JSON)

Det här är ett exempel på en NFC-taggs data som JSON-objekt:

Kopiera
{
  "action" : "TagRead",
  "error" : "",
  "parameter" : "Valfri scriptparameter",
  "payloadCount" : 2,
  "payloads"
  [
    {
      "identifier" : "",
      "primary" : "Det här är innehållet från NFC-kortet.",
      "secondary" : "en",
      "type" : "T",
      "typeNameFormat" : 1
    },
    {
      "identifier" : "",
      "primary" : "https://exempel.com",
      "secondary" : "",
      "type" : "U",
      "typeNameFormat" : 1
    }
  ]
}


Det här är samma NFC-taggs data som flerradig sträng:

Kopiera
TagRead

Valfri scriptparameter
2

Det här är innehållet från NFC-kortet.
T
1

https://exempel.com
U
1

Kommentarer 

  • Endast en läsåtgärd kan pågå åt gången. Om en läsåtgärd pågår när åtgärden avbryt utförs, avbryts läsåtgärden.

  • Scriptsteget Öppna URL kan användas för att öppna en URL, till exempel en som tas emot från en NFC-tagg.

Exempel 1

Initierar avläsning av en enskild NFC-tagg och slutar söka när tidsgränsen nåtts som anges i fältet NFC::Tidsgräns. När taggen har lästs anges data från taggen i de fält som angetts i delscriptet Tolka resultat, som anropas från delscriptet Läs in en klar.

Huvudscript: Läs in en

Kopiera
Gå till layout [ "NFC-tagg" ; Animering: Ingen ]
Konfigurera NFC-läsning [ Åtgärd: Läs ; Script: "Läs in en klar" ; Parameter: "Aktuellt datum och tid är " & Get ( AktuellTidsstämpel ) ; Timeout: NFC::Timeout ; Formatera resultat som JSON: 1 ]

Delscript 1: Läs in en klar

Kopiera
Ange variabel [ $scriptParam ; Värde: Get ( Scriptparameter ) ]
Utför script [ Angivet: Från lista ; "Tolka resultat" ; Parameter: $scriptParam ]
Visa anpassad dialogruta: [ "NFC-sökning klar" ; $scriptParam ]

Delscript 2: Tolka resultat

Eftersom Formatera resultat som JSON har angetts till ett annat värde än noll i scriptsteget Konfigurera NFC-läsning i scriptet Läs in en, tolkar scriptet Tolka resultat taggdata som ett JSON-objekt.

Kopiera
Ny post/sökpost
Tilldela fält [ NFC::Text ; Get ( Scriptparameter ) ]
Tilldela fält [ NFC::Tagg ; JSONGetElement ( NFC::Text ; "payloads[0].primary" ) ]
Tilldela fält [ NFC::AntalNyttolast ; JSONGetElement ( NFC::Text ; "payloadCount" ) ]
Tilldela fält [ NFC::Resultat ; JSONGetElement ( NFC::Text ; "action" ) & JSONGetElement ( NFC::Text ; "error" ) ]
Tilldela fält [ NFC::LäsTidsstämpel ; Get ( AktuellTidsstämpel ) ]
Tilldela fält [ NFC::ID ; JSONGetElement ( NFC::Text ; "payloads[0].identifier" ) ]
Tilldela fält [ NFC::Typ ; JSONGetElement ( NFC::Text ; "payloads[0].type" ) ]
Verkställ post/sökpost [Med dialogruta: Av]


Om du föredrar att arbeta med en flerradig sträng anger du tillvalet Formatera resultat som JSON till noll. Ändra sedan scriptet Tolka resultat så här:

Kopiera
Ny post/sökpost
Tilldela fält [ NFC::Text ; Get ( Scriptparameter ) ]
Tilldela fält [ NFC::Tagg ; GetValue ( NFC::Text ; 6 ) ]
Tilldela fält [ NFC::AntalNyttolast ; GetValue ( NFC::Text ; 4 ) ]
Tilldela fält [ NFC::Resultat ; GetValue ( NFC::Text ; 1) & GetValue ( NFC::Text ; 2 ) ]
Tilldela fält [ NFC::LäsTidsstämpel ; Get ( AktuellTidsstämpel ) ]
Tilldela fält [ NFC::ID ; GetValue ( NFC::Text ; 5) ]
Tilldela fält [ NFC::Typ ; GetValue ( NFC::Text ; 7) ]
Verkställ post/sökpost [Med dialogruta: Av]

Exempel 2 

Initierar avläsning av flera NFC-taggar och slutar söka när tidsgränsen nåtts som anges i fältet NFC::Tidsgräns eller om sökningen avbryts. Allteftersom taggarna avläses anges data från taggarna i de fält som anges i delscriptet Tolka resultat (mer information finns i Exempel 1).

Huvudscript: Läs in flera

Kopiera
Konfigurera NFC-läsning [ Åtgärd: Läs ; Script: "Tolka resultat" ; Parameter: "Sökning startade " & Get ( AktuellTidsstämpel ) ; Timeout: NFC::Tidsgräns ; Kontinuerlig läsning: 1 ; Formatera resultat som JSON: 1] 
Gå till layout [ "NFC-söklista"; Animering: Ingen ]

Exempel 3 

Initierar taggläsning och försöker öppen en URL om NFC-postens typ är "U", vilket anger att nyttolasten är en URL. Sökningen avslutas när tidsgränsen som angetts i fältet NFC::Tidsgräns nås eller om sökningen avbryts. När taggen har lästs anges data från taggen i de fält som angetts i delscriptet Tolka resultat (mer information finns i Exempel 1), som anropas från delscriptet Öppna från inläsning.

Huvudscript: Läs in och öppna

Kopiera
Konfigurera NFC-läsning [ Åtgärd: Läs ; Script: "Öppna från inläsning" ; Parameter: "Sökning startade " & Get ( AktuellTidsstämpel ) ; Timeout: NFC::Timeout ; Formatera resultat som JSON: 1 ] 
Gå till layout [ "NFC-söklista"; Animering: Ingen ]

Delscript: Öppna från inläsning

Kopiera
Ange variabel [ $scriptParam ; Värde: Get ( Scriptparameter ) ]
Utför script [ Angivet: Från lista ; "Tolka resultat" ; Parameter: $scriptParam ]
Verkställ post/sökpost [Med dialogruta: Av]
If [ NFC::Typ = "U" ]
    Öppna URL [ Med dialogruta: På ; NFC::Tagg ] 
End If