FCM - 仅当应用处于后台时'display'推送通知



目前,我的 Xamarin 应用中正在发送和接收推送通知。当我发送推送通知时,当应用程序处于前台和后台时,会显示先睹为快的对话。我尝试仅在应用程序在后台时直观地显示推送通知。当用户处于前台时,通知只是潜入HUD而不显示。

这是我的代码:

Xamarin Android

[Service]
[IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
public class FCMMessagingService : FirebaseMessagingService
{
const string TAG = "MyFirebaseMsgService";
public override void OnMessageReceived(RemoteMessage message)
{
try
{
var _message = message.GetNotification().Body;
var _title = message.GetNotification().Title;
MainActivity.SendNotification(_title, _message);
}
catch (Exception e)
{
//Was NotificationType null? this should never be null anyways
}
}
}

API - 安卓有效负载

return new JObject(
new JObject(
new JProperty("notification",
new JObject(
new JProperty("body", message),
new JProperty("title", title),
new JProperty("icon","toasticon"), 
new JProperty("user", fromId != null ? fromId.ToString() : "")
)
),
new JProperty("data",
new JObject(
new JProperty("notificationtype", notificationType)
)
)
)
).ToString();

如果您遵循了 xamarin android 的 Firebase 设置

您可能已经在那里读到前台通知必须手动显示,

怎么做?

这就是

在设置中,您将有一个继承自FirebaseMessagingService的类

在该类中,将有一段类似这样的代码((:

var pendingIntent = PendingIntent.GetActivity(this,
MainActivity.NOTIFICATION_ID,
intent,
PendingIntentFlags.OneShot);
var notificationBuilder = new  NotificationCompat.Builder(this, MainActivity.CHANNEL_ID)
.SetSmallIcon(Resource.Drawable.ic_stat_ic_notification)
.SetContentTitle("FCM Message")
.SetContentText(messageBody)
.SetAutoCancel(true)
.SetContentIntent(pendingIntent);
var notificationManager = NotificationManagerCompat.From(this);
notificationManager.Notify(MainActivity.NOTIFICATION_ID, 
notificationBuilder.Build());

这段代码将通知发送到Android托盘,当在前台时,因此如果您对此进行注释,您将获得所需的输出。

祝你好运!

在查询的情况下恢复。

相关内容

  • 没有找到相关文章

最新更新