Отображение диалогового окна с предупреждением при нажатии на уведомление при отправке из Push-уведомления Firebase
Я использую push-уведомление Firebase в своем проекте. Но всякий раз, когда я нажимаю уведомление, всегда отображается часть else. Я хочу отображать текст уведомления в этом диалоговом окне при нажатии на уведомление.
Вот мой код в NotifService.class:
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "FCM Service";
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.icon_main)
.setContentTitle("Update from Refer Ncert")
.setContentText(""+remoteMessage.getNotification().getBody())
.setAutoCancel(true)
.setLights(Notification.DEFAULT_LIGHTS,1000,20000)
.setVibrate(new long[] { 1000, 1000})
.setSound(Settings.System.DEFAULT_NOTIFICATION_URI);
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("notifmsg",remoteMessage.getNotification().getBody());
PendingIntent pi = PendingIntent.getActivity(this,0,intent,Intent.FLAG_ACTIVITY_NEW_TASK);
mBuilder.setContentIntent(pi);
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(0, mBuilder.build());
}}
Вот код в OnCreate() MainActivity для отображения уведомления:
String notifmsg=getIntent().getStringExtra("notifmsg");
if(notifmsg != null){
new SweetAlertDialog(this)
.setTitleText("Hello Readers!")
.setContentText(notifmsg)
.show();
}
else{
new SweetAlertDialog(this)
.setTitleText("Welcome Back")
.setContentText("Continue reading your previous book by clicking on RECENT BOOK button below.")
.show();
}
2 ответа
Насколько я вижу, вы определяете намерение, но не отправляете его.
Добавьте это, чтобы кодировать ваш код после определения pendingIntent, и он должен работать:
pi.send();
Вы можете использовать это:
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setContentTitle("Notification")
.setContentText(messageBody)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notificationBuilder.build());