Как открыть ContentPage на Xamrin.Forms при получении уведомления FCM? - PullRequest
0 голосов
/ 16 марта 2020

Мне нужно открыть ContentPage при получении уведомления FCM, например, экрана вызова. Это приложение для видео чата. Я использую Xamarin.Forms и TokBox. Помоги мне решить это.

1 Ответ

0 голосов
/ 17 марта 2020

В уведомлениях Foreground вы можете сделать это с помощью FirebaseMessagingService перед отправкой уведомления на устройство.

 public class MyFirebaseMessagingService : FirebaseMessagingService
{
    const string TAG = "MyFirebaseMsgService";

    public override void OnMessageReceived(RemoteMessage message)
    {
        Log.Debug(TAG, "From: " + message.From);
        var body = message.GetNotification().Body;
        Log.Debug(TAG, "Notification Message Body: " + body);

        //do something here

        SendNotification(body, message.Data);
    }

    void SendNotification(string messageBody, IDictionary<string, string> data)
    {
        var intent = new Intent(this, typeof(MainActivity));
        intent.AddFlags(ActivityFlags.ClearTop);
        foreach (var key in data.Keys)
        {
            intent.PutExtra(key, data[key]);
        }

        var pendingIntent = PendingIntent.GetActivity(this, MainActivity.NOTIFICATION_ID, intent, PendingIntentFlags.OneShot);

        var notificationBuilder = new NotificationCompat.Builder(this, MainActivity.CHANNEL_ID)
                                  .SetSmallIcon(Resource.Drawable.notification)
                                  .SetContentTitle("FCM Message")
                                  .SetContentText(messageBody)
                                  .SetAutoCancel(true)
                                  .SetContentIntent(pendingIntent);

        var notificationManager = NotificationManagerCompat.From(this);
        notificationManager.Notify(MainActivity.NOTIFICATION_ID, notificationBuilder.Build());
    }

Для получения дополнительной информации вы можете обратиться к документу MS. https://docs.microsoft.com/en-us/xamarin/android/data-cloud/google-messaging/remote-notifications-with-fcm?tabs=windows

...