Comment envoyer des notifications FCM pour Android avec Firebase

crytex

مراقب سابق
إنضم
5 أوت 2009
المشاركات
14.896
مستوى التفاعل
25.223


أهلا و سهلا بكافّة الإخوة الأعضاء والزوار في منتديات تونيزيا سات

Grâce à ce tutoriel on va voir ensemble comment envoyer des messages FCM: Firebase Cloud Messaging pour Android avec la plateforme Firebase


Les messages FCM sont utilisés pour envoyer un message à tous les utilisateurs de vos applications Android

Le message sera envoyé sous forme de notification

Résultat attendu

Screenshot_1475097268.png

Avant de commencer le tutoriel consulter les tutoriels suivants

Développez votre première application Android avec Android Studio
+
حصريا على تونيزيا سات شروحات فيديو لتطوير تطبيقات الأندرويد
+
 
التعديل الأخير:

crytex

مراقب سابق
إنضم
5 أوت 2009
المشاركات
14.896
مستوى التفاعل
25.223


Lancez votre navigateur et ouvrez le site de Firebase

Et on commence par créer un nouveau projet

1.jpg

On choisit le nom du projet et le pays

2.jpg

On passe Maintenant à Android Studio pour créer un nouveau projet

3.jpg

On choisit le Min SDK puis NEXT

4.jpg

On appui sur NEXT

5.jpg

Une fois le projet lancé, on appui sur Gradle à droite de l'écran pour récupérer la clé SHA-1
On fait un double click sur SigningReport

Bien sur l'application doit être signée



6.jpg

Une fois la clé générée, on la récupere

7.jpg

De retour à Firebase, on commence par ajouter une application Android à cette plateforme

8.jpg

On doit saisir le nom du package de notre projet ainsi que la clé SHA-1 générée et on appui sur ajouter une application

9.jpg

Enregistrez le fichier google-services.json généré, on va l'utiliser plus tard

10.jpg
 

crytex

مراقب سابق
إنضم
5 أوت 2009
المشاركات
14.896
مستوى التفاعل
25.223


Sous l'anglet Project Files, placez le fichier json sous le dossier APP/ comme suit


11.jpg

De retour à Firebase, on appui sur Continuer

12.jpg

Puis Terminer

13.jpg

Le projet est créée avec succès

14.jpg

On ajoute Google GMS à notre projet
Dans Build.Gradle project on ajoute le classpath suivant

كود:
classpath 'com.google.gms:google-services:3.0.0'

15.jpg

Maintenant dans Build.Grande Module, on ajoute les dependencies suivantes
كود:
    compile 'com.google.android.gms:play-services:9.2.0'
    compile 'com.google.firebase:firebase-messaging:9.2.0'
On ajoute à la fin le plugin suivant

كود:
apply plugin: 'com.google.gms.google-services'
17.jpg

On ajout une classe Java

AndroidFirebaseMsgService

C'est un service qui va gérer les FCM


18.jpg

Java:
package firebase.app.com.firebase;

import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.media.RingtoneManager;
import android.net.Uri;
import android.support.v4.app.NotificationCompat;

import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;

public class AndroidFirebaseMsgService extends FirebaseMessagingService {

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        createNotification(remoteMessage.getNotification().getBody());
    }

    private void createNotification(String messageBody) {
        Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        PendingIntent resultIntent = PendingIntent.getActivity(this, 0, intent,
                PendingIntent.FLAG_ONE_SHOT);

        Uri notificationSoundURI = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        NotificationCompat.Builder mNotificationBuilder = new NotificationCompat.Builder(this)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentTitle("App Name")
                .setContentText(messageBody)
                .setAutoCancel(true)
                .setSound(notificationSoundURI)
                .setContentIntent(resultIntent);

        NotificationManager notificationManager =
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        notificationManager.notify(0, mNotificationBuilder.build());
    }
}

On ajout aussi la classe
AndroidFirebaseInstanceIdService


19.jpg
Java:
package firebase.app.com.firebase;

import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.FirebaseInstanceIdService;

public class AndroidFirebaseInstanceIdService extends FirebaseInstanceIdService {

    @Override
    public void onTokenRefresh() {
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();

    }
}

On passe maintenant au fichier AndroidManifest pour ajouter les services nécessaires

20.jpg
XML:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="firebase.app.com.firebase">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <service android:name=".AndroidFirebaseMsgService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>
        <service android:name=".AndroidFirebaseInstanceIdService">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
            </intent-filter>
        </service>
    </application>

</manifest>
 
التعديل الأخير:

crytex

مراقب سابق
إنضم
5 أوت 2009
المشاركات
14.896
مستوى التفاعل
25.223


On va maintenant tester notre travail, en va essayer d'envoyer des notification FCM

21.jpg

On appui sur envoyer votre premier message

22.jpg

On va lancer l'application sur un émulateur

23.jpg

24.jpg

On remplit les champs, texte du message et libellé et on doit choisir aussi l'application

25.jpg

Et on appui sur envoyer


26.jpg

Notification reçue avec succès

Screenshot_1475097268.png

:sm-type:
 
أعلى