04 septembre 2020
publié par 

Apple propose une nouvelle API pour envoyer les notifications Push. Cette nouvelle API utilise le protocole HTTP/2, et sera la seule autorisée à partir de novembre 2020 :
https://developer.apple.com/news/?id=11042019a&1572897862

 

 

La fonction NotifPushEnvoie du WLangage a donc été adaptée afin d'utiliser cette nouvelle API. Les changements d'API de ce type sont très fréquents, et dans le cas général transparents au niveau du WLangage. Mais dans ce cas précis, les attendus de Apple sont différents. Le prototype de la fonction NotifPushEnvoie a donc du être adapté afin d'accepter les nouveaux paramètres demandés par Apple.

 

Les applications ou sites chargés d'envoyer des notification Push, doivent donc utiliser la nouvelle API avant novembre 2020 afin de conserver la possibilité d'envoyer des notifications.

 

Afin de générer une application avec la nouvelle API, il faut utiliser WINDEV ou WEBDEV 25 "Update 4" (250090F).

Une fois la mise à jour en place, il faut modifier l'appel de la fonction NotifPushEnvoie pour corriger l'erreur "Aucune syntaxe ne correspond".

 

L'appel était de la forme suivant (extrait de l'exemple WD Envoi Push) :

NotifPushEnvoie(ConstruitNotification(Vrai),tabIdentifiantsAEnvoyer,tabMoncertif[1],nTypeEnvoi)

 

Il faut le transformer afin d'avoir :

NotifPushEnvoie(ConstruitNotification(Vrai),tabIdentifiantsAEnvoyer, sEmplacementCertificat, sPasseCertificat, sTopic_Id, nTypeEnvoi)

 

Avec pour les nouveaux paramètres :

  • sEmplacementCertificat : une chaîne de caractères contenant le chemin d'accès complet au fichier contenant le certificat. Si le fichier certificat est intégré à la bibliothèque de l'application lors de la création de l'exécutable, il ne sera pas nécessaire de déployer le certificat à côté de l'exécutable. Le certificat utilisé sera celui intégré à l'exécutable. Dans ce cas il faut penser à recréer l'exécutable avec un nouveau certificat lorsque ce dernier expire.
  • sPasseCertificat : une chaîne contenant le mot de passe du certificat.
  • sTopic_Id : une chaîne contenant le "Topic ID" qui correspond à l'identifiant du Bundle donné à l'étape "Informations générales" de l'assistant de génération du projet Xcode.

La nouvelle API est déjà en place au niveau de Apple, il est donc possible de déployer dès maintenant la mise à jour de l'application utilisant la nouvelle syntaxe de NotifPushEnvoie.

 

< Retour

8 commentaires

Frédéric
29/10/2020 - 09:44 - Répondre
Bonjour, La liste des correctifs n'est plus disponible dans les ressources pratiques. On ne voit les correctifs que jusqu'à la version 24 !! Cordialement,

LOIC HAMEL
29/10/2020 - 10:50 - Répondre
Le correctif a été intégré à la version Update 4 (250090F) de WINDEV. Cette version est actuellement en niveau 2 et disponible en téléchargement.

roumegou
03/11/2020 - 15:54 - Répondre
être obligé de migrer sites et webservices juste pour ça !!! Nous avons un site back office en 22 et un webservice en 24. Une migration entrainera des problèmes sur tous nos clients. Ne pas avoir de correctifs pour les versions précédentes est vraiment totalement anormal. On reste comme d'habitude les victimes de ces pratiques répréhensibles chez Apple comme chez Pcsoft

AllalBo
22/12/2020 - 01:59 - Répondre
Bonjour, La nouvelle syntaxe (iOS) de la fonction NotifPushEnvoie dans un WebService provoque la même erreur de compilation, et du coup impossible de l'utiliser.

Guillaume BAYLE
22/12/2020 - 13:25 - Répondre
Bonjour, la nouvelle syntaxe est bien opérationnelle en version 250090F, 260056P et 260056U. il y a une différence dans le message et/ou l'appel, n'hésitez pas à fournir le message complet et votre code à notre support par le choix "Requête au support technique" du bouton "Aide" du volet "Accueil" du ruban. Bons développements !

AllalBo
04/01/2021 - 18:53 - Répondre
Bonjour à tous, Merci pour votre réponse, Après plusieurs tests, la solution est de déclarer une variable de type chaîne ANSI pour la variable : sMotDePasse est une chaîne ANSI = "" NotifPushEnvoie(MaNotification,tabIdentifiantsAEnvoyer,sCertificat,sMotDePasse,sTopic_Id,nTypeEnvoi) Ça a solutionné le problème pour moi. NB: Si vous utilisez un WebService pour envoyer les notifications, vérifiez bien que votre serveur d'application soit au minimum en version 250090F. Bien à vous.

laurentc
23/12/2020 - 17:56 - Répondre
du mon coté même problème que Allalbo message d'erreur dans la syntaxe et en test erreur aussi

Loïc HAMEL
24/12/2020 - 08:08 - Répondre
Bonjour, Je vais vous faire la même réponse que Guillaume. La nouvelle syntaxe est bien opérationnelle. Je vous conseille de contacter le support technique gratuit en fournissant le message d'erreur et le code qui le provoque.

Publier un commentaire : 
Votre adresse email ne sera pas publiée