通知Android(FCM)

时间:2020-02-28 06:40:25

标签: java android firebase-cloud-messaging android-notifications

我想在应用程序关闭并且通知到达时自定义通知布局,显示默认通知,即使我关闭了应用程序,我也要显示自定义通知。

以下是我针对Firebase onMessageReceievd的代码

@Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        Log.d("remoteMessage",String.valueOf(remoteMessage.getFrom()));

        if (remoteMessage.getData().size() > 0) {
            Log.e("MyFirebaseMsgService", "Data Payload: " + remoteMessage.getData().toString());

            try {
                JSONObject json = new JSONObject(remoteMessage.getData().toString());
                sendPushNotificationData(json);
            } catch (Exception e) {
                Log.e("MyFirebaseMsgService", "Exception: " + e.getMessage());
            }
        }

        if (remoteMessage.getNotification() != null) {
            //Log.e(TAG, "Notification Body: " + remoteMessage.getNotification().getBody());
            sendPushNotification(String.valueOf(remoteMessage.getNotification().getBody()),String.valueOf(remoteMessage.getNotification().getTitle()));
        }
    }

2 个答案:

答案 0 :(得分:0)

我使用BitTextStyle()在通知中添加了突出显示的文本。

return new NotificationCompat.Builder(context)
       .setSmallIcon(R.drawable.ic_mono)
       .setContentTitle(title)
       .setContentText(message)
       .setLargeIcon(icon)
       .setColor(ContextCompat.getColor(context, R.color.notification_color))
       .setStyle(new NotificationCompat.BigTextStyle().bigText(title))
       .setStyle(new NotificationCompat.BigTextStyle().bigText(message).setSummaryText("#hashtag"))
       .setShowWhen(true)
       .setAutoCancel(true);

答案 1 :(得分:0)

Firebase Remote message具有notificationdata字段。根据此documentation,Firebase会自动处理remoteMessage.notification,并在您的应用关闭时将remoteMessage.data传递给意向附加内容。但是,当您的应用处于活动状态时,remoteMessage会到达接收者并由其处理。但是很少有方案取决于remoteMessage状态。请参阅文档中的表。因此,如果即使关闭应用程序也要处理所有通知,则需要将所有数据放入remoteMessage.data字段中。在这种情况下,Firebase会将远程消息直接传递到您的接收器中,您可以在其中使用数据创建自定义布局。