我想在应用程序关闭并且通知到达时自定义通知布局,显示默认通知,即使我关闭了应用程序,我也要显示自定义通知。
以下是我针对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()));
}
}
答案 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具有notification
和data
字段。根据此documentation,Firebase会自动处理remoteMessage.notification
,并在您的应用关闭时将remoteMessage.data
传递给意向附加内容。但是,当您的应用处于活动状态时,remoteMessage
会到达接收者并由其处理。但是很少有方案取决于remoteMessage
状态。请参阅文档中的表。因此,如果即使关闭应用程序也要处理所有通知,则需要将所有数据放入remoteMessage.data
字段中。在这种情况下,Firebase会将远程消息直接传递到您的接收器中,您可以在其中使用数据创建自定义布局。