Xamarin.forms уведомляет firebase о щелчке на переднем плане и состоянии уничтоженного приложения - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь реализовать FireBase Pu sh уведомления нажмите в приложении xamarin.forms. Я могу получать уведомления, когда приложение находится на переднем плане, в фоновом режиме и закрыто.

Я хочу сделать следующее:

1.При нажатии на уведомление переднего плана Я хочу открыть желаемую страницу содержимого с существующей страницы. И когда я закрываю открытую страницу, мне нужно go страница в стеке (предыдущая страница, которая существовала).

2.Когда я нажимаю Уведомление о прекращении работы приложения, я хочу открыть нужную страницу содержимого, и когда мы закроем эту страницу, она должна перейти на начальную страницу приложения (потому что в состоянии остановки не будет страницы в стеке)

Что Я сделал

В уничтоженном состоянии я управляю намерением уведомления следующим образом в MainActivity:

 if (Intent.Extras != null)
            {
                foreach (var key in Intent.Extras.KeySet())
                {
                    if (key != null)
                    {

                        if(key== "user_notification_id")
                        {
                            var value = Intent.Extras.GetString(key);
                            LoadApplication(new App(true));
                        }             
                    }
                }
            }   
        }

В основном состоянии я управляю намерением уведомления следующим образом.

 protected override void OnNewIntent(Intent intent)
        {

            if (intent != null)
            {
                var message = intent.GetStringExtra("user_notification_id");

                if (!string.IsNullOrEmpty(message))
                {
                    Settings.NotificationID = message;
                    LoadApplication(new App(true));
                }
            }          
             base.OnNewIntent(intent);
        }

App.xaml.cs (где навигация была управляемой)

   public App(bool hasNotification = false)
        {
            InitializeComponent();
            if (hasNotification)          
            {
                var navPage = new NavigationPage(new LandingPage());
                Application.Current.MainPage = navPage;
                navPage.Navigation.PushModalAsync(new ChatPage("26"));
            }
            else
            {
                var splashPage = new NavigationPage(new SplashPage());
                MainPage = splashPage;
            }         
        }

Что происходит сейчас.

В уведомлении переднего плана нажмите, на странице чата (мой желаемый страница палатки) откроется. Но когда мы закроем страницу, она закроет все приложение, а не перейдет на предыдущую страницу.

При щелчке уведомления об отключенном состоянии он откроет страницу чата, но внезапно откроет ее и перейдет на целевую страницу.

Структура навигации на странице моего приложения.

SplashPage-->LoginPage--->Landing page-->Listpage---chatpage(My desired page) 

Любая помощь приветствуется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...