Ouvrir Activité spécifique lors de la notification d'un clic dans la FCM
Je suis en train de travailler sur une Application dans laquelle je suis tenu d'afficher les notifications.
Pour les avis, je suis à l'aide de FireBase Messagerie en Nuage (FCM).
Je suis en mesure d'obtenir Notification lorsque l'application est en arrière-plan.
Mais quand je clique sur une notification, il vous rediriger vers home.java page. Je veux rediriger vers Notification.java page.
Donc,s'il vous plaît dites-moi comment spécifier Activité sur le Clic de la notification.
Je suis l'aide de deux services:
1.)MyFirebaseMessagingService
2.)MyFirebaseInstanceIDService
C'est mon exemple de code pour onMessageReceived() méthode dans MyFirebaseMessagingService classe.
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "FirebaseMessageService";
Bitmap bitmap;
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(TAG, "From: " + remoteMessage.getFrom());
//Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
Log.d(TAG, "Message data payload: " + remoteMessage.getData());
}
//Check if message contains a notification payload.
if (remoteMessage.getNotification() != null) {
Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
}
//Also if you intend on generating your own notifications as a result of a received FCM
//message, here is where that should be initiated. See sendNotification method below.
}
/**
* Create and show a simple notification containing the received FCM message.
*/
private void sendNotification(String messageBody, Bitmap image, String TrueOrFalse) {
Intent intent = new Intent(this, Notification.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("Notification", TrueOrFalse);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setLargeIcon(image)/*Notification icon image*/
.setContentTitle(messageBody)
.setStyle(new NotificationCompat.BigPictureStyle()
.bigPicture(image))/*Notification with Image*/
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
}
/*
*To get a Bitmap image from the URL received
* */
public Bitmap getBitmapfromUrl(String imageUrl) {
try {
URL url = new URL(imageUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(input);
return bitmap;
} catch (Exception e) {
//TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
Merci pour votre réponse!
Tu veux dire à dire, supprimer getNotification() à partir de getNotification().getBody();??
non, pas du tout. Lire ce stackoverflow.com/a/37876727/1843331
Monsieur! Je suis la réception de la notification corrcetly, pas de problème!! Je veux ouvrir activité Notification.java lorsque l'on clique sur réception de la notification. Comment spécifier dans le code.
OriginalL'auteur Arman Reyaz | 2016-11-21
Vous devez vous connecter pour publier un commentaire.
Avec la FCM, vous pouvez envoyer des deux types de messages aux clients:
1. Les messages de Notification: parfois considérés comme des "affichage des messages".
FCM affiche automatiquement le message à l'utilisateur final des appareils au nom de l'application cliente. Les messages de Notification de disposer d'un ensemble prédéfini de visible à l'utilisateur les touches.
2. Les messages de données: qui sont gérés par l'application cliente.
Application Client est responsable du traitement des messages de données. Les données n'ont que des messages personnalisés paires clé-valeur.
Selon la FCM document Recevoir des Messages dans une Application Android
Ensemble
click_action
dans la notification de la charge utile:Donc, si vous voulez traiter les messages qui arrivent dans l'arrière-plan, vous devez envoyer
click_action
avec message.click_action
est un paramètre de la notification de la charge utileSi vous souhaitez ouvrir votre application et effectuer une action spécifique, définissez
click_action
dans la notification de la charge utile et de l'associer à un filtre d'intention dans l'Activité que vous souhaitez lancer.Par exemple, définir
click_action
àOPEN_ACTIVITY_1
pour déclencher un filtre d'intention comme suit:FCM charge se présente comme suit:
Vérifier mes mises à jour de réponse.
La Meilleure réponse complète et que je cherchais depuis un bon moment, Merci @PriyankPatel
OriginalL'auteur Priyank Patel
Lorsque l'application est en arrière-plan de l'intention doit être livré dans votre lanceur d'activité .De sorte qu'il ouvre votre Lanceur d'activité.Maintenant, vous vérifiez s'il existe des données dans l'Intention de lanceur d'activité de démarrer votre Activité requis.
OriginalL'auteur ak0692
AndroidManifest.xml
Votre FirebaseMessagingService.java fichier onMessageReceived méthode:
Votre fonction cloud/code serveur de notification:
OriginalL'auteur Dildarkhan Pathan
Ouvrir MyFirebaseMessagingService.java fichier
l'intérieur de ce fichier il y a un sendNotification() méthode, il vous devez indiquer votre activité vous avez besoin pour naviguer dans l'Intention comme indiqué ci-dessous
si vous envoyez plusieurs avis et que vous souhaitez naviguer dans les différentes Activités sur le clic d'une Notification, vous pouvez utiliser une instruction conditionnelle pour l'atteindre, ma suggestion est d'utiliser un commutateur cas comme indiqué ci-dessous
Selon cette logique, vous pouvez ouvrir une activité spécifique à la Notification, cliquez sur dans la FCM.
Cela fonctionne parfaitement pour moi.
Grâce
OriginalL'auteur Darshuu