PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Notification PUSH vers Android (enrichie d'image)
Notification PUSH vers Android (enrichie d'image)
Débuté par Jean Philippe - JPDU, 12 mar. 2021 11:18 - 23 réponses
Membre enregistré
23 messages
Posté le 12 mars 2021 - 11:18
Bonjour

J’ai une application développée en WinDev (25) qui envoie des Notifications PUSH sur des smartphones Android sur lesquels j’ai installé une appli développée en WinDev Mobile (26).
Le tout fonctionne très bien.

Je souhaiterais ‘’enrichir’’ ces notifications en y rajoutant des images (autres que l’icône de l’appli), un peu comme les notifications de NetFlix (où il y a une image-annonce de film etc...).
J’ai du mal à avancer sur le sujet.

Quelqu’un aurait une idée, une piste ?

Merci d’avance.
Jean Philippe

Eléments techniques :

Les messages à envoyer sont stockés dans un fichier <<MN_SendNotifications>>
Une procédure tourne en boucle pour envoyer les notifications non-encore envoyées.
La procédure EnvoieAndroid ci-dessous est appelée pour chaque notif à envoyer. Elle fait appel à la procédure ConstruitNotification (ci-dessous)

=========================================================================
PROCÉDURE EnvoieAndroid(IdCible, mErreur, mmAPP)

// Variables
tabIdentifiantsAEnvoyer est un tableau de Buffers
tabIdentifiantsAEnvoyerTemp est un tableau de Buffers
ListeReponse est un WD_Serveur_Push.ListeIdentifiantsAndroidResponse
bufIdentifiant est un Buffer
tabTokensInvalides est un tableau de Buffer
nNbTokensInvalides est un entier
sToast est une chaîne
nModeEnvoiAndroid est un entier
mGoogle_API est une chaîne

// initialisation
mErreur =""
monAPP =Majuscule(SansEspace(monAPP))
mGoogle_API ="AAA…..hIuL"
nModeEnvoiAndroid = npeFirebase

// On récupère les identifiants, token correpondant à IdCible
ListeReponse = WD_Serveur_Push.ListeIdentifiantsAndroid(IdCible, monAPP)

SI ListeReponse.ListeIdentifiantsAndroidResult..Occurrence > 0 ALORS
// Ajout des identifiants dans un tableau
POUR i = 1 _À_ ListeReponse.ListeIdentifiantsAndroidResult..Occurrence
bufIdentifiant = ListeReponse.ListeIdentifiantsAndroidResult[i]
TableauAjoute(tabIdentifiantsAEnvoyer,bufIdentifiant)
FIN

// On gère le fait que les notifications PUSH ne peuvent avoir au maximum que 1000 destinataires
// S'il y a plus de destinataires il faut envoyer plusieurs messages.

POUR i = 0 _À_ (tabIdentifiantsAEnvoyer..Occurrence / 1000)
nDebut est un entier = i * 1000 + 1
nFin est un entier = (i + 1) * 1000
SI nFin > tabIdentifiantsAEnvoyer..Occurrence ALORS
nFin = tabIdentifiantsAEnvoyer..Occurrence
FIN
// On prend les identifiants désirés
TableauCopie(tabIdentifiantsAEnvoyer,tabIdentifiantsAEnvoyerTemp,nDebut,nFin - nDebut + 1)

// On envoie la notification
SI PAS NotifPushEnvoie(ConstruitNotification(monAPP),...
tabIdentifiantsAEnvoyerTemp,...
mGoogle_API,...
tabTokensInvalides,...
nModeEnvoiAndroid) ALORS
//Erreur("Erreur lors de l'envoi du message", ErreurInfo())

SINON
// On traite les tokens invalides
FIN
FIN

// L'envoi est terminé

FIN

=========================================================================
PROCÉDURE ConstruitNotification(monApp)

maNotif est un Notification

maNotif.Titre = SansEspace(MN_SendNotifications.Notif_Titre)
maNotif.Message = SansEspace(MN_SendNotifications.Notif_Message)
maNotif.Contenu = SansEspace(MN_SendNotifications.Notif_Contenu)
SI SansEspace(maNotif.Contenu)="" ALORS
maNotif.Contenu ="PUSH# "+ MN_SendNotifications.IDMN_SendNotifications
FIN
maNotif.Icone = SansEspace(MN_SendNotifications.Notif_Icone)
maNotif.GrandeIcone = SansEspace(MN_SendNotifications.Notif_GrandeIcone)
maNotif.Vibration = 1
maNotif.AffichageLED = 0
maNotif.Supprimable = MN_SendNotifications.Notif_Supprimable
maNotif.ActiveApplication = MN_SendNotifications.Notif_ActiveApp
maNotif.TexteDéroulant = ""
maNotif.Son = ""
maNotif.Groupe = monApp
maNotif..Format..Type = MN_SendNotifications.Notif_Format
maNotif..Format..Contenu = SansEspace(MN_SendNotifications.Notif_Image)


RENVOYER maNotif

=================================================================================
Posté le 12 mars 2021 - 21:39
Salut,

Si tu trouve une solution je suis preneur
Merci
Membre enregistré
35 messages
Popularité : +4 (4 votes)
Posté le 13 mars 2021 - 17:11
Bonjour,

Il me semble que cette façon de faire ne peut être réalisé que par l'application en local. Les notifs Push sont très limitées lorsque elles "transitent" par Google ou apple. C'est un peu plus riche qu'un texto mais a peine.
Toutes les possibilités souhaitées sont réalisables si la notif est générée via l'app mobile. Il faut repenser la façon de récupérer l'information a afficher (Timer - thread...)
Membre enregistré
3 334 messages
Popularité : +93 (137 votes)
Posté le 13 mars 2021 - 17:31
Membre enregistré
55 messages
Popularité : +4 (4 votes)
Posté le 13 mars 2021 - 20:58
Bonjour

Je fait l'essai d'envoyer une notif en local et impossible de mettre une photo comme indiqué sans la doc

// Notification avec définition d'un format de notification
n est une Notification
n.Titre = "Photo enregistrée"
n.Message = "Date de la prise de vue : 18/07/2014 19:45"
n.GrandeIcone = "photo.png"
n.MessageSecondaire = "desert.png"
n.Format.Format = notifFormatImage
n.Format.Contenu = fRepEnCours + "photos/desert.png"
NotifAjoute(n)

Voire la doc : https://doc.pcsoft.fr/fr-FR/?1000019441&name=notification_type_variable
Membre enregistré
10 messages
Popularité : +1 (1 vote)
Posté le 14 mars 2021 - 08:32
Hello Jean

I would send the push notification as normal and also have an awp page with advertisement text and images available to the internet.

My push notification message would not hold the contents of the advertisement, but only the link and or nymber of the advertisement that is available via parameters from the awp page.

On receipt of my push notification, I would open an application window that shows the message and the image retrieved from the awp page, and not from the notification message itself.

That would be the easiest and always under your control.

Kind Regards
Membre enregistré
23 messages
Posté le 14 mars 2021 - 13:42
Ben a écrit :
Hello Jean

I would send the push notification as normal and also have an awp page with advertisement text and images available to the internet.

My push notification message would not hold the contents of the advertisement, but only the link and or nymber of the advertisement that is available via parameters from the awp page.

On receipt of my push notification, I would open an application window that shows the message and the image retrieved from the awp page, and not from the notification message itself.

That would be the easiest and always under your control.

Kind Regards


Hi Ben,
Make sens!
Thanks for your input & suggestion.

how do you send a < ... the link and or nymber of the advertisement ... > ?

Regards

JP
Membre enregistré
140 messages
Popularité : +6 (6 votes)
Posté le 14 mars 2021 - 19:14
Popoy a écrit :


Je rencontrais le même problème il y a quelque temps et j'ai laissé tombé. Je suis également preneur d'infos ! ;)

J'ai testé avec Firebase et une de mes applications. Je reçois bien la notification sur l'appli WM mais il n'y a pas l'image dans la notification. J'en ai déduit que WM ne gérait pas les images dans les notifs....
Membre enregistré
23 messages
Posté le 15 mars 2021 - 06:27
fr a écrit :
Popoy a écrit :
C'est théoriquement faisable
https://firebase.googleblog.com/2019/09/fcm-image-notification.html
Ou
https://docs.leanplum.com/docs/adding-images-to-push-notifications
Maintenant, comment on le fait avec WM?


Je rencontrais le même problème il y a quelque temps et j'ai laissé tombé. Je suis également preneur d'infos !

J'ai testé avec Firebase et une de mes applications. Je reçois bien la notification sur l'appli WM mais il n'y a pas l'image dans la notification. J'en ai déduit que WM ne gérait pas les images dans les notifs....


Salut Popoy,
merci pour ton commentaire.
Hélas...je tourne en rond avec ce problème depuis plusieurs semaines ....
tu as laissé tombé le besoin...ou tu as une autre astuce ?

je continue mes recherches....
Posté le 15 mars 2021 - 10:46
pour que l'image puisse s'afficher il faut qu'elle doit présente dans votre application (même nom, même emplacement)
Membre enregistré
23 messages
Posté le 15 mars 2021 - 15:26
wddev a écrit :
> pour que l'image puisse s'afficher il faut qu'elle doit présente dans votre application (même nom, même emplacement)

je veux bien pour des images statiques. mais pour des images qui changent à chaque nouvelle notification, ça ne marchera pas !
a moins qu'il n'y ait une astuce qui m'échappe !
Membre enregistré
140 messages
Popularité : +6 (6 votes)
Posté le 15 mars 2021 - 16:05
Je ne vois pas comment stocker l'image dans l'application sachant par exemple que FIREBASE demande une adresse URL de stockage de l'image que ce soit dans le backoffice de FB et même en passant par un script cURL en PHP.
Membre enregistré
22 messages
Popularité : +2 (2 votes)
Posté le 15 mars 2021 - 16:17
Bonjour, quelqu'un peut t'il me donner un indice pour intégrer les notifications push sous iOS via Firebase, impossible de le faire fonctionner, meme en suivant leur etapes à la lettre cela bloque l'application créer sous WM26 dès le demarrage de l'app. Merci !
Posté le 15 mars 2021 - 16:42
Jean Philippe - JPDU a écrit :
wddev a écrit :
pour que l'image puisse s'afficher il faut qu'elle doit présente dans votre application (même nom, même emplacement)

je veux bien pour des images statiques. mais pour des images qui changent à chaque nouvelle notification, ça ne marchera pas !
a moins qu'il n'y ait une astuce qui m'échappe !


dans ce cas il faut fournir l'image sous la forme d'une url.
Membre enregistré
140 messages
Popularité : +6 (6 votes)
Posté le 15 mars 2021 - 16:47
ID PIXEL a écrit :
> Bonjour, quelqu'un peut t'il me donner un indice pour intégrer les notifications push sous iOS via Firebase, impossible de le faire fonctionner, meme en suivant leur etapes à la lettre cela bloque l'application créer sous WM26 dès le demarrage de l'app. Merci !

On a déja partagé la solution dans le forum, je n'ai plus le lien mais regarde on a mis un script PHP qui gère les notifications push pour IOS sans passer par Firebase
Membre enregistré
22 messages
Popularité : +2 (2 votes)
Posté le 15 mars 2021 - 17:00
Merci de ta réponse, par contre le soucis n'est pas pour "encore" envoyé la notification, mais plutôt d'intégrer firebase à l'application qui est généré par WM. L'application fonctionne, mais dès que je suis les étapes d'intégrations de Firebase, plus rien ne marche...
Membre enregistré
140 messages
Popularité : +6 (6 votes)
Posté le 15 mars 2021 - 17:53
J'avais tenté à inclure firebase dans le projet XCODE mais j'ai laissé tombé car je ne maitrise pas du tout SWIFT. WM intégre Firebase uniquement pour Android. Pour IOS de mémoire il faut télécharger et installer Cocoapod et importer les pods Firebase. Ensuite la gestion de l'envoie/réception des notif push sous IOS par FB est à coder en SWIFT.
Membre enregistré
55 messages
Popularité : +4 (4 votes)
Posté le 15 mars 2021 - 18:06
Salut,

Après pas mal d'essais je confirme pour que cela fonctionne à tous les coups il faut que l'image soit sous forme d'URL.

Exemple :

// Notification avec définition d'un format de notification
n est une Notification
n.Titre = "Photo enregistrée"
n.Message = "Date de la prise de vue : 18/07/2014 19:45"
n.Format.Format = notifFormatImage
n.Format.Contenu = "

" // qui doit afficher un desert
NotifAjoute(n)


Pour mes essais j'utilise sur : https://imgbb.com/

****************************************************

Par contre ce que je n'arrive pas à faire c'est d'ajouter des images dans les actions supplémentaires ...
Il faut au préalable dans la compilation , mettre l'image (test.jpg) dans la liste des fichiers

n est une Notification
n.Titre = "Photo enregistrée"
n.Message = "Date de la prise de vue : 18/07/2014 19:45"
n.actionsupplementaire[1]..LibelleAction ="Essai un"
n.actionsupplementaire[1]..Icone ="Test.jpg"
n.actionsupplementaire[1]..ActionClic ="OuvreFenetre"
NotifAjoute(n)

Si quelqu'un à réussi je suis preneur ....
Membre enregistré
23 messages
Posté le 15 mars 2021 - 21:41
Salut,
il me semble que ton exemple fonctionne en local sur le téléphone.
mais pas pour le mode PUSH à travers Firebase.

la ligne <<n.Format.Format = notifFormatImage>> ne passe pas la compile ... ==> l'élément Format n'existe pas dans la classe notificationFormat!

merci par ailleurs pour le site imgbb.com :merci:
Membre enregistré
55 messages
Popularité : +4 (4 votes)
Posté le 16 mars 2021 - 08:08
Oups erreur dans la doc Pcsoft
Il faut mettre

n.Format.Type = notifFormatImage
Membre enregistré
22 messages
Popularité : +2 (2 votes)
Posté le 16 mars 2021 - 11:21
fr a écrit :
> J'avais tenté à inclure firebase dans le projet XCODE mais j'ai laissé tombé car je ne maitrise pas du tout SWIFT. WM intégre Firebase uniquement pour Android. Pour IOS de mémoire il faut télécharger et installer Cocoapod et importer les pods Firebase. Ensuite la gestion de l'envoie/réception des notif push sous IOS par FB est à coder en SWIFT.

Merci, je viens enfin de reussir l'integration, par contre pour l'envoi des notifications sur ios, j'ai récupéré un token avec un format différent et du coup je ne reçoit pas la notification, uniquement si je passe par la console firebase... comment convertir ce token ios ?
Membre enregistré
23 messages
Posté le 16 mars 2021 - 12:20
J'ai enfin réussi à faire ce que je voulais:

- appli développée avec WinDev Mobile 26
- envoyer des PUSH Notification vers cette appli/téléphone ANDROID (pour le moment...IOS viendra dans 3-4 semaines)
- à partir d'un programme WinDev qui gère des campagnes de pub via PUSH pour les abonnés (avec des images et des icones dans les notifs)
- en utilisant Firebase
- en utilisant le webservice <WD_Serveur_Push> fourni comme exemple avec WinDev que j'ai légèrement modifié pour individualiser les PUSH
- en hébergeant le webservice sur PCSCloud (qui fonctionne très bien).
- en utilisant < https://imgbb.com/> pour héberger les images (suggéré plus haut par Monsieur C)

pour le moment je distribue l'appli par lien sur cloud...il me reste à publier cette appli sur Google Play...
==> pas une mince affaire !!!

des idées / des pistes ?
Membre enregistré
3 334 messages
Popularité : +93 (137 votes)
Posté le 16 mars 2021 - 12:48
Pour la publication, il y a un tutoriel sur le dépôt pcsoft.
Commence par là.
Membre enregistré
23 messages
Posté le 16 mars 2021 - 14:36
Popoy a écrit :
Pour la publication, il y a un tutoriel sur le dépôt pcsoft.
Commence par là.


Merci Popoy pour l'info.
Je me lance... :merci: