ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Communication / NFC functions
  • Use in blocking mode (Syntax 1)
  • Use in non-blocking mode (Syntax 2)
  • Other notes
  • Required permissions
  • AppID required
  • Application in the background: Specific case from Android 10
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Starts reading a NFC tag or enables the detection of NFC tags for the current window.
Example
// Read an NFC tag in blocking mode
tag is nfcTag
tag = NFCReadTag()
IF NOT ErrorOccurred THEN
Info(StringBuild("Reading an NFC tag of %1 type", tag..Type))
FOR EACH data OF tag.Data
SWITCH data.Type
CASE nfcText
Info(data.Content)
CASE nfcURI
IF StringStartsWith(data.Content, "http") THEN
BrowserRunApp(data.Content)
END
CASE nfcMedia
IF data.MIMEType ~= "image/png" THEN
fSaveBuffer(CompleteDir(SysDirStorageCard()) + "image.png", data.Content)
END
END
END
END
// Read an NFC tag in non-blocking mode
IF NOT NFCReadTag(ReadNFCTag) THEN
Error("Failure starting the NFC detection.", ErrorInfo())
END
INTERNAL PROCEDURE ReadNFCTag(tag is nfcTag)
Info(StringBuild("A NFC tag of %1 type was detected.", tag.Type))
// Stop detection
RETURN True
END
Syntax
Android

Reading an NFC tag in blocking mode Hide the details

<Result> = NFCReadTag()
<Result>: nfcTag variable
nfcTag variable initialized with the information read in the NFC tag.
If an error occurs, the ErrorOccurred variable is set to True. To get more details on the error, use ErrorInfo.

Reading an NFC tag in non-locking mode Hide the details

<Result> = NFCReadTag(<WLanguage procedure>)
<Result>: Boolean
  • True if the detection of NFC tags was triggered,
  • False otherwise. If an error occurs, the ErrorOccurred variable is set to True. To get more details on the error, use ErrorInfo.
<WLanguage procedure>: Procedure name
Name of the WLanguage procedure ("callback") called when an NFC tag was read. This procedure has the following format:
PROCEDURE <Procedure Name> (<Tag>)
where <Tag> is a nfcTag variable containing the information read in the NFC tag.
Remarks:
  • The parameters of this procedure are optional. There is no need to pass parameters to this procedure. Indeed, these parameters are automatically filled during each call.
  • If the procedure returns True, the detection of NFC tags will be automatically stopped after the reading.
  • If the procedure returns False or if it returns no value, the detection will remain active as long as the window in which the procedure was triggered is not closed.
Remarks
Android

Use in blocking mode (Syntax 1)

The call to NFCReadTag automatically opens a window to prompt the users to hold their devices closer to another NFC-enabled device. This window will be automatically closed:
  • when the sending is over
  • if the user cancels the sending by pressing the Back key of the device.
    Remark: To customize the message displayed in this window, use NextTitle before the call to NFCReadTag.

Use in non-blocking mode (Syntax 2)

The call to NFCReadTag starts detecting the NFC tags for the current window at the time of the call.
The detection will be active when this window is displayed in the foreground of the application.
When the window is closed, the detection is stopped and will have to be restarted by calling NFCReadTag.
A fatal error will occur if there is no current window when NFCReadTag is called.

Other notes

  • The NFC functions cannot be used in the simulator or in the emulator.
  • iPhone/iPad The NFC functions are only available in read-only mode.

Required permissions

The call to this function modifies the permissions required by the application.
Required permissions:
  • NFC: Allows the applications to perform input/output operations via the NFC technology.
  • VIBRATE: Used to access the sensor feature.
iPhone/iPad

AppID required

Calling this function modifies the AppIDs of the application in the Apple developer account. It is necessary to activate the "NFC Tag Reading" App ID..
Android

Application in the background: Specific case from Android 10

From Android 10, it is no longer possible to open a window when the application is in the background.
NFCReadTag can open a window. If this function is used while the application is in the background, a fatal error will occur.
Tips:
  • It is possible to determine if the application is in the background using InBackgroundMode.
  • If an application needs to interact with the user while it is in the background, the solution is to display a notification (via the Notification type). The application will be brought back to the foreground when the notification is clicked, if the ActivateApplication property is set to True. You can also open a window from the procedure passed to the ActionClick property.
Related Examples:
WM System Cross-platform examples (WINDEV Mobile): WM System
[ + ] This application is an example of some of the features of WINDEV Mobile available for Android/iOS.
The following system functions are used:
- NFC
- Multimedia control
- Brightness
- Volume
- Wi-Fi
- Bluetooth
- Toast
- Compass
- Accelerometer
- Camera control
- LED
- Vibration
- Notifications
- Drawing functions
- Internet
Business / UI classification: Business Logic
Component: wd290android.jar
Minimum version required
  • Version 18
Comments
Click [Add] to post a comment

Last update: 06/22/2023

Send a report | Local help