PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile 2024 → iOS : comment récupérer un pushToken pour une utilisation avec Firebase ou une methode PHP ?
iOS : comment récupérer un pushToken pour une utilisation avec Firebase ou une methode PHP ?
Started by Pascal BOULESTEIX, Sep., 22 2022 9:45 AM - 5 replies
Registered member
964 messages
Popularité : +16 (20 votes)
Posted on September, 22 2022 - 9:45 AM
Salut à tous
En ce moment je m'agace sur les notifications.
J'en profite pour essayer de résoudre un vieux problème : envoyer des notifications vers des iPhone.
Pour cela, je récupère le token renvoyé par NotifPushActive, que je transforme en hexa et que je stocke dans une base mySql, puis je l'utilise pour envoyer les notifications. Que ce soit via un message de test de Firebase ou bien via l'api apple https://api.development.push.apple.com ou bien ssl://gateway.push.apple.com:2195, elles n'arrivent jamais !

NotifPushActive(gPROC_Active_Notification_Push_ID)

Procedure gPROC_Active_Notification_Push_ID(bufReponse est un Buffer, sErreur est une chaîne)
<Compile SI TypeConfiguration=iOS>
gsPushToken = BufferVersHexa(bufReponse,4, BigEndian)
// envoi du token par webservice pour stockage dans une base mysql
<FIN>


--
Pascal Boulesteix
Applications Visiolittoral et WNat
Registered member
118 messages
Posted on September, 22 2022 - 10:03 AM
Salut Pascal,

Au risque de me répéter, as-tu visualisé le webinaire de PC-Soft à ce sujet ? (celui spécifique à iOS)

Tu as peut-être oublié quelquechose (comme le certificat "Apple Push Notification" par ex)

J'utilise les notifications push sur iOS avec Windev Mobile depuis plusieurs années et ça fonctionne (je viens d'essayer à l'instant pour en être certain)... Même avec WM27 (miracle)

Fabrice
Registered member
964 messages
Popularité : +16 (20 votes)
Posted on September, 27 2022 - 4:07 PM
Salut Fabrice
Je viens de regarder la vidéo.
La partie Apple est conforme à ce que j'ai fait.
La où ça diverge c'est la partie de récupération du token iOS:
- je le récupère et je le stocke en Base64 ; dans la vidéo, c'est un Webservice WD qui s'occupe de cela, pour la part, c'est un WS REST Perso qui est utilisé pour stocker le token dans ma base MySQL.
Puis, lorsque j'utilise ma page PHP de gestion des envois, que ce soit en dev ou en prod, avec telle ou telle méthode d'envoi de notification vers des Apple, les méthodes indiquent que les pushs se sont bien passé, mais aucune notification n'est reçu sur mon iPad ou mon iPhone.
Est-ce un bug ou pas de WM26/27 ?

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Registered member
118 messages
Posted on September, 28 2022 - 10:43 AM
Salut Pascal,
J'utilise les notifications sous iOS sans aucun soucis (il n'y a pas de bug sous WM26/27)
La différence avec toi c'est que l'envoi s'effectue par un programme Windev et que les tokens sont stockés en HEXA (avec BufferVersHexa) et non en Base64.
Ensuite, et c'est logique, je fais un truc du genre TableauAjoute(tMobilesIOS, HexaVersBuffer(pToken)) avant d'envoyer la notification.
Sans vouloir t'offenser, et j'écris peut être une bêtise, mais es-tu certain de bien re-convertir les tokens stockés en Base64 vers un tableau de buffers.
Car contrairement aux Tokens Android, ceux d'iOS comportent des caractères "non lisibles" qui ne peuvent pas être stockées dans des chaines.
Fabrice
Registered member
964 messages
Popularité : +16 (20 votes)
Posted on September, 28 2022 - 11:05 AM
Salut Fabrice
Merci pour tes remarques.
Oui je décode les tokens BASE64 avant de les utiliser ($TheToken=base64_decode($pushid)).
Par contre, je passe directement la variable PHP sans passer par un tableau.
Dans ton cas, c'est du "PCSoft" qui envoie la notification ou bien une page PHP "maison" N?

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Registered member
118 messages
Posted on September, 28 2022 - 11:40 AM
Pascal,
Oui, comme je l'ai précisé, c'est du PC-Soft (un service développé avec Windev)
Peut-être devrais tu essayer afin de lever le doute et ainsi valider ton code PHP
Bon téléchargement de la version 104h :-)
Fabrice