PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Envoie une notification push (distante) à un appareil mobile (iOS ou Android). Cette fonction est utilisable dans une application WINDEV ou dans un site WEBDEV.
Exemple
// Envoi d'une notification push sur iOS
TokensEnvoi est un tableau de Buffers
POUR i = 1 A nbTokens
Ajoute(TokensEnvoi, tokens[i])
FIN

MaNotification est une Notification
MaNotification..Message = "Nouvelle notification"

MesCertificats est un tableau de Certificats
MesCertificats = CertificatCharge("certifapple.cer", "")

MonRésultat est booléen
MonRésultat = NotifPushEnvoie(MaNotification, TokensEnvoi, ...
MesCertificats[1], typeServiceIOSProd)

SI MonRésultat = Faux ALORS
Trace(ErreurInfo())
FIN
Syntaxe

iPhone/iPad : Envoyer une notification Masquer les détails

<Résultat> = NotifPushEnvoie(<Notification> , <Tokens> , <Identification> , <Type de serveur>)
<Résultat> : Booléen
  • Vrai si l’envoi a réussi,
  • Faux dans le cas contraire. La fonction ErreurInfo permet de connaître l'erreur renvoyée par le service de notification.
<Notification> : Notification
Nom de la variable de type Notification correspondant à la notification à envoyer.
<Tokens> : Tableau de buffers
Nom de la variable de type Tableau contenant la liste des tokens représentant les appareils sur lesquels la notification doit être envoyée.
<Identification> : Certificat
Nom de la variable de type Certificat permettant d'identifier l'application sur le service APN.
Cette variable représente le certificat pour les notifications push de l’application (obtenu auprès de Apple). Pour plus de détails, consultez Conditions nécessaires pour les notifications Push en iOS. Ce certificat peut avoir été chargé à l’aide de la fonction CertificatCharge.
<Type de serveur> : Constante de type Entier
Type de serveur sur lequel la notification doit être envoyée :
typeServiceIOSProdServeur de production IOS (APN).
typeServiceIOSTestServeur de test IOS (APN).

Android : Envoyer une notification Masquer les détails

<Résultat> = NotifPushEnvoie(<Notification> , <Tokens> , <Identification> , <Tokens invalides> [, <Plateforme>])
<Résultat> : Booléen
  • Vrai si l’envoi a réussi,
  • Faux dans le cas contraire. La fonction ErreurInfo permet de connaître l'erreur renvoyée par le service de notification. Ces erreurs peuvent contenir une liste de tokens invalides qui doivent être supprimés de la base de tokens.
<Notification> : Notification
Nom de la variable de type Notification correspondant à la notification à envoyer.
<Tokens> : Tableau de buffers
Nom de la variable de type tableau contenant la liste des tokens représentant les appareils sur lesquels la notification doit être envoyée.
<Identification> : Chaîne de caractères (avec guillemets)
Paramètre d'identification de l’application sur le service GCM (clé d’autorisation Google). Pour obtenir cette clé, une configuration spécifique est nécessaire. Pour plus de détails, consultez Configuration nécessaire pour les notifications Push en Android.
<Tokens invalides> : Tableau de buffers
Nom de la variable de type Tableau de buffers. Ce paramètre est renseigné avec la liste des tokens invalides renvoyés par le serveur.
iPhone/iPad La fonction NotifPushListeIdentifiantsInvalides permet d'obtenir la liste des tokens invalides.
<Plateforme> : Constante optionnelle de type Entier
Versions 22 et supérieures
Plateforme à utiliser pour l’envoi de la notification. L’application Android qui doit recevoir les notifications doit avoir été configurée pour ce type de plateforme.
npeFirebasePlateforme Firebase.
Nouvelle plateforme pour l’envoi de notification push.
Cette plateforme doit être utilisée pour les nouveaux projets (à partir de WINDEV 22 Update 1) ou les projets n’utilisant pas encore les notifications push.
npeGCM
(Valeur par défaut)
Plateforme Google Cloud Messaging.
Ancienne solution Google pour l’envoi de notification push.
Cette plateforme ne doit être utilisée que pour les projets existant utilisant déjà les notifications push (projets créés avec une version antérieure à WINDEV 22 Update 1)
Nouveauté 22
Plateforme à utiliser pour l’envoi de la notification. L’application Android qui doit recevoir les notifications doit avoir été configurée pour ce type de plateforme.
npeFirebasePlateforme Firebase.
Nouvelle plateforme pour l’envoi de notification push.
Cette plateforme doit être utilisée pour les nouveaux projets (à partir de WINDEV 22 Update 1) ou les projets n’utilisant pas encore les notifications push.
npeGCM
(Valeur par défaut)
Plateforme Google Cloud Messaging.
Ancienne solution Google pour l’envoi de notification push.
Cette plateforme ne doit être utilisée que pour les projets existant utilisant déjà les notifications push (projets créés avec une version antérieure à WINDEV 22 Update 1)
Plateforme à utiliser pour l’envoi de la notification. L’application Android qui doit recevoir les notifications doit avoir été configurée pour ce type de plateforme.
npeFirebasePlateforme Firebase.
Nouvelle plateforme pour l’envoi de notification push.
Cette plateforme doit être utilisée pour les nouveaux projets (à partir de WINDEV 22 Update 1) ou les projets n’utilisant pas encore les notifications push.
npeGCM
(Valeur par défaut)
Plateforme Google Cloud Messaging.
Ancienne solution Google pour l’envoi de notification push.
Cette plateforme ne doit être utilisée que pour les projets existant utilisant déjà les notifications push (projets créés avec une version antérieure à WINDEV 22 Update 1)
Remarques
  • La notification push est envoyée à un service de notification (Apple ou Google) qui redistribue ensuite cette notification à un ensemble d’appareils mobile.
  • Les services gérés sont :
    • le GCM de Google.
    • les APN d’Apple.
    Les services gérés sont :
    • Versions 22 et supérieures
      Firebase de Google (le GCM de Google est supporté par compatibilité. Google conseille l'utilisation de Firebase).
      Nouveauté 22
      Firebase de Google (le GCM de Google est supporté par compatibilité. Google conseille l'utilisation de Firebase).
      Firebase de Google (le GCM de Google est supporté par compatibilité. Google conseille l'utilisation de Firebase).
    • les APN d’Apple.
  • Android Les notifications envoyées aux terminaux Android prennent en compte le proxy défini avec la fonction Proxy.
  • iPhone/iPad Les notifications envoyées aux terminaux sous iOS sont directes (elles ne passent pas par le proxy).
  • iPhone/iPad Le service d'Apple n’autorise que 256 octets de données par notification. Il est nécessaire de faire attention à la taille des données envoyées dans la variable de type Notification (par exemple le message) afin de ne pas dépasser cette limite. Une erreur sera renvoyée si la limite est dépassée.
  • iPhone/iPad La connexion au serveur APN peut échouer si deux notifications sont envoyées dans un intervalle de temps très court (si le serveur est encore en train de traiter le premier message).
  • iPhone/iPad Pour l'envoi des notifications push sur des terminaux iOS, l'application doit pouvoir accéder aux ports 2195 et 2196 en TCP.
Liste des exemples associés :
WD Envoi Push Exemples multiplateforme (WINDEV Mobile) : WD Envoi Push
[ + ] Cet exemple permet d'envoyer des notifications en push sur des appareils Android et iOS.

Il récupère les identifiants des mobiles dans la base HFSQL de l'exemple "WD Serveur Push", et leur envoie ensuite les notifications grâce à la fonction NotifPushEnvoie.
Composantes
WINDEVWEBDEV - Code ServeurEtats et Requêtes wd220device.dll
Version minimum requise
  • Version 19
Documentation également disponible pour…
Commentaires
Mesurer la taille d'une notification
Bonjour,
dans les remarques il est dit qu'Apple n'autorise que 256o de données par notification. Comment mesurer la taille d'une notification ?

Je rencontre souvent des erreurs avec les services d'Apple et la procédure NotifPushEnvoie() mais ces erreurs sont rarement explicites.
Nicolas COMPAIN
29 nov. 2016