This content has been translated automatically.  Click here  to view the French version.
  • WLanguage procedure called
  • Special cases
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WindowsLinuxPHPWEBDEV - Browser code
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Stored procedures
Enables the management of push notifications in a WINDEV Mobile application (Android or iOS).
iPhone/iPad We advise you to call this function in the initialization process of the project because it must be run whenever the application is started.
// Activation des notifications push
// Gestion de l'enregistrement
PROCÉDURE EnregistreNotifPush(Token is Buffer, ErreurNotif is string)
IF Length(Token) > 0 THEN
// Informe le serveur d'application du nouvel identifiant
// Traitement de l'erreur
NotifPushEnable(<WLanguage procedure> [, <Options>])
<WLanguage procedure>: Procedure name
Name of WLanguage procedure called when the application receives the registration identifier from the notification service.
<Options>: Combination of optional Integer constants
Record options. Can correspond to one or more of the following constants:
notifPushAlertTypeThe mobile application will accept the push notifications in alert format.
Android Constant not available.
(Default value)
The mobile application will accept all types of push notifications.
notifPushBadgeTypeThe mobile application will accept the push notifications in badge format.
Android Constant not available.
notifPushSoundTypeThe mobile application will accept the sound push notifications.
Android Constant not available.

Caution: These options are taken into account during the first application setup. Then, the user can modify the notifications accepted in the Notification Center of device.

WLanguage procedure called

The WLanguage procedure called by NotifPushEnable must have the following syntax:
PROCEDURE EnregistreNotifPush(<Identifiant> est un Buffer, <Erreur> est une chaîne)
This procedure is called when the registration toward the notification service is ended.
The parameters of this procedure are as follows:
  • <Identifier>: "Token" buffer corresponding to the registration identifier returned by the notification service. This buffer must be transmitted to the application server so that push notifications can be sent to the application.
    Caution: This buffer must be transmitted to the application server:
    • when its value changed in relation to the previous execution of the application. To do so, its value must be stored in a data file of the application or in a buffer on disk created by fSaveBuffer or SaveParameter.
    • if the application is started by the user (and not by the arrival of a push notification). ExeInfo determines whether the application is started when a notification is received.
    This buffer can be empty if a registration error occurred during the registration request. In this case, the <Error> parameter will be filled with the error message.

    iPhone/iPad The buffer that corresponds to the identifier can contain non-printable characters (e.g., binary zeros). To send this buffer to a third-party application (to send notifications, for example), it may be necessary to convert this buffer into hexadecimal (BufferToHexa) or Base64 (Encode) depending on the format expected by the application. If the application that retrieves the data is a WINDEV/WEBDEV/WINDEV Mobile application, you will need to perform the reverse conversion (HexaToBuffer or Decode) to be able to send the notifications.
  • <Error>: Character string describing a registration error. This parameter is filled only if an error occurred during the registration request.

Special cases

  • iPhone/iPad This function can be called only if the application includes a certificate for the push notifications.
  • iPhone/iPad If the function is called several times during the same execution of the application, only the first call is taken into account.
  • Android The device communicates with the Google Cloud Messaging (GCM) notification service by using the following ports: 5228, 5229 and 5230. Make sure that your firewall is configured accordingly.
  • Android If the Google Cloud Messaging notification service cannot be contacted when calling NotifPushEnable (network connectivity problem, for example), the registration request will be sent again in increasing time intervals (1 hour maximum) until the request succeeds or an error is raised. Therefore, a long time can exist between the call to NotifPushEnable and the call to the procedure passed as parameter.
  • The NotifPushEnable function is asynchronous because it makes a request:
    • iPhone/iPad on the Apple server for iOS.
    • Android on the Google server in the case of Android.
      From Android 12, the delay required to obtain the token at the time of the first setup or at the time of the reinstallation of an application is higher than that of the old versions. The Procedure WLanguage called by the NotifPushEnable function can therefore be executed after the end of the initialization of the project, or after the opening of the first window.
Related Examples:
WM Push Cross-platform examples: WM Push
[ + ] This example shows how to receive Push notifications.
It calls the PushNotifActive function and returns the identifier to "WD Push Server", which stores it.
Then, the "Send Push" example reads this identifier and sends Push notifications to this example.
Business / UI classification: Business Logic
Component: wd280android.jar
Minimum version required
  • Version 19
Click [Add] to post a comment