DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions spécifiques Mobile / Fonctions de gestion du téléphone
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
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
MonMotDePasse est une chaîne ANSI = "Password"
POUR i = 1 Ã€ nbTokens
Ajoute(TokensEnvoi, tokens[i])
FIN 
MaNotification est une Notification
MaNotification.Message = "Nouvelle notification"
MonRésultat est un booléen 
MonRésultat = NotifPushEnvoie(MaNotification, TokensEnvoi, "certifapple.cer", MonMotDePasse, NomBundleID, 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> , <Mot de passe> , <TopicID> , <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> : Chaîne de caractères
Chemin complet du fichier contenant 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.
<Mot de passe> : Chaîne de caractères ANSI
Mot de passe du fichier contenant le certificat pour les notifications Push. Si le fichier n'a pas de mot de passe, utilisez une chaîne vide (""). Ce paramètre doit correspondre à une chaîne de caractères ANSI.
<TopicID> : Chaîne de caractères
Identifiant du Bundle spécifié à l'étape "Informations générales" de l'assistant de génération du projet Xcode.
<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
Paramètre d'identification de l'application :
<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.
<Plateforme> : Constante optionnelle de type Entier
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 utilisant l'API Cloud Messaging.
Plateforme pour l'envoi de notification push disponible à partir de WINDEV 22 Update 1. Cette plateforme est toujours disponible :
  • pour les projets Firebase existant et utilisant déjà cette solution.
  • pour les nouveaux projets Firebase, si cette API est activée.
npeFirebaseCM_v1Plateforme Firebase utilisant l'API Firebase Cloud Messaging V1.
Nouvelle plateforme pour l'envoi de notification push activée par défaut pour les nouveaux projets Firebase.
Cette plateforme doit être utilisée à partir de WINDEV 28 Update 2 pour les projets utilisant l'API Firebase Cloud Messaging V1.
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 :
    • Firebase de Google (le GCM de Google est supporté par compatibilité. Google conseille l'utilisation de Firebase).
      • API Firebase Cloud Messaging V1
      • API Cloud Messaging
    • les APN d'Apple.
  • Les notifications envoyées aux terminaux Android prennent en compte le proxy défini avec la fonction Proxy.
  • A partir de Android 8, les notifications envoyées aux terminaux Android prennent en compte la catégorie de notification (également appelé "Channel").
  • Spécificités iOS :
    • Les notifications envoyées aux terminaux sous iOS sont directes (elles ne passent pas par le proxy).
    • 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.
    • 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).
    • 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_Serveur_Push Exemples multiplateforme : WD_Serveur_Push
[ + ] Cet exemple est un webservice servant à stocker les identifiants nécessaires au Push sur mobiles.
L'application WINDEV Mobile WM Push stockent les identifiants Push dans la base de cet exemple.
Ces identifiants sont ensuite lus par l'exemple "WD Envoi Push" afin qu'il envoie les notifications.
Envoi Push Exemples multiplateforme : 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.
Composante : wd290device.dll
Version minimum requise
  • Version 19
Documentation également disponible pour…
Commentaires
Notifications iOS
Attention pour l'envoi de notifications PUSH vers iOS !
Si la propriété ..Message vaut "" (chaine vide) la fonction renvoi Vrai mais la notification n'apparait pas sur l'appareil iOS.
Sous Android pas de souci la notification apparait bien sans message.
Nathan RENAULT
28 déc. 2023
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

Dernière modification : 08/03/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale