Xamarin.Forms Shell - Открытие приложения «Холодный старт» - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть приложение Xamarin.Forms (v4.3.0.908675), которое выглядит следующим образом:

enter image description here

Оно имеет несколько вкладок и использует очень базовый c XF Shell для макета.

Он получает несколько уведомлений Pu sh, и в одном из них приложение должно открыть указанную вкладку c после нажатия на уведомление. Приложение тогда холодно началось.

Я пытаюсь сделать следующее, чтобы сделать это: В моем App.xaml.cs у меня есть метод, который вызывается каждый раз, когда открывается уведомление, которое отправляет сообщение в оболочку, чтобы выбрать tab.

public App()
{
    // One Signal
    OneSignal.Current.StartInit( "8449c-..." )
    .HandleNotificationOpened(HandleNotificationOpened)
    .EndInit();
}

// When a push notification is opened
private void HandleNotificationOpened( OSNotificationOpenedResult result )
{
    Messenger.Default.Send( new ServiceScheduleMessage(), "LoadSectionDeepLink" );  
}

Затем в моем AppShell.xaml.cs я получаю сообщение и изменяю вкладку по умолчанию:

//* loading service schedules deep link
private void LoadServiceSchedulesDeepLink()
{
    CurrentItem = this.my_service_schedules;
}

Однако, когда я это делаю, приложение открывается так:

enter image description here

Вкладки исчезли, и если нажать на некоторые кнопки, которые перемещаются на другие страницы, приложение вылетает. Похоже, что я изменил вкладку до того, как Shell была готова, и вызвал это странное поведение.

Вопрос:

Есть ли способ узнать, что приложение завершило запуск, чтобы я мог вызвать некоторые другие как изменить текущую вкладку оболочки?

...