目前,我的 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托盘,当在前台时,因此如果您对此进行注释,您将获得所需的输出。
祝你好运!
在查询的情况下恢复。