PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → [WM26] Android notification push firebase
[WM26] Android notification push firebase
Débuté par Mikael, 21 sep. 2021 18:15 - 2 réponses
Membre enregistré
108 messages
Popularité : +2 (2 votes)
Posté le 21 septembre 2021 - 18:15
Bonjour, je souhaite mettre en place des notifications push sur mon app android.

J'ai bien initialiser les choses :

// Callback pour l'appel des notifications
NotifPushProcedure(RéceptionNotifPush)

// Active les notifications push
NotifPushActive(ActivationNotifPush)


NotifPushActive me renvoit bien un identifiant : d9v6qZGyLf8:APA91bE-iT9dvq..................................................................................


J'envoi ensuite une notication via mon WS en .Net :

Dim value = message
        Dim tRequest As WebRequest
        tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send")
        tRequest.Method = "post"
        tRequest.ContentType = "application/json"
        tRequest.Headers.Add(String.Format("Authorization: key={0}", SERVER_API_KEY))
        tRequest.Headers.Add(String.Format("Sender: id={0}", SENDER_ID))

        Dim payload = New With {
            .[to] = deviceId,
            .priority = "high",
            .content_available = True,
            .notification = New With {
                .body = message,
                .title = "Test",
                .badge = 1
            }
        }

        Dim postbody As String = JsonConvert.SerializeObject(payload).ToString()
        Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postbody)
        tRequest.ContentLength = byteArray.Length

        Dim sResponseFromServer As String = ""
        Using dataStream As Stream = tRequest.GetRequestStream()
            dataStream.Write(byteArray, 0, byteArray.Length)

            Using tResponse As WebResponse = tRequest.GetResponse()

                Using dataStreamResponse As Stream = tResponse.GetResponseStream()

                    If dataStreamResponse IsNot Nothing Then

                        Using tReader As StreamReader = New StreamReader(dataStreamResponse)
                            sResponseFromServer = tReader.ReadToEnd()
                            'result.Response = sResponseFromServer;
                        End Using
                    End If
                End Using
            End Using
        End Using

        Return sResponseFromServer


La aussi tout semble ok puisque le message de retour contient :

"{""multicast_id"":62419345xxxxx,""success"":1,""failure"":0,""canonical_ids"":0,""results"":[{""message_id"":""0:1632xxxxxxxxx""}]}"



Mais rien n'apparait sur mon téléphone. Est ce que j'ai raté qq chose ?
Membre enregistré
108 messages
Popularité : +2 (2 votes)
Posté le 23 septembre 2021 - 17:13
Pour info cela fonctionne quand on déploie sur le tel mais en GO direct sur un mobile.
Membre enregistré
3 333 messages
Popularité : +93 (137 votes)
Posté le 24 septembre 2021 - 09:24
Si cela fonctionne en go
Cela signifie que l'API correspond à identifiant d'application en go
En effet, wm modifies cet identifiant dans le manifest Android
On a pas le même identifiant en go et en Normal
Suffit donc de modifier le manifest pour garder le même identifiant
Ou sinon de redemander un identifiant API a Google