У меня следующая цель: мое приложение получает push-уведомления (FCM), и мне нужно обрабатывать пользовательские манипуляции с ними во всех возможных сценариях.
- Когда я получаю push-уведомление переднего плана и обрабатываю его в WillPresentNotification - все работает, как и ожидалось.
Когда я отправляю приложение в фоновый режим (нажимая кнопку «Домой») и получаю push, нажимаю на этот push в Центре уведомлений. У меня следующий код в DidReceiveNotificationResponse метод:
MessagingCenter.Send<object, PushNotificationObject>(this, "PushNavigationToRootPage", push);
Таким образом, он просто отправляет сообщение в RootPage, которое подписано / отписано, как показано ниже:
protected override void OnAppearing()
{
base.OnAppearing();
MessagingCenter.Unsubscribe<object, PushNotificationObject>(this, "PushNavigationToRootPage");
MessagingCenter.Subscribe<object, PushNotificationObject>(this, "PushNavigationToRootPage", (sender, _push) => { ... });
}
protected override void OnDisappearing()
{
MessagingCenter.Unsubscribe<object, PushNotificationObject>(this, "PushNavigationToRootPage");
base.OnDisappearing();
}
enter code here
Это тоже работает!НО!
- Если я полностью закрою приложение (проведу пальцем по нему из App Switcher) и затем нажму на полученное нажатие - оно только отправит сообщение (из кода выше), ноникогда не достигнет кода, который находится внутри Subscribe of RootPage.
Есть идеи, что не так?
Заранее спасибо!