У меня есть приложение Xamarin.Forms (v4.3.0.908675), которое выглядит следующим образом:
Оно имеет несколько вкладок и использует очень базовый 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;
}
Однако, когда я это делаю, приложение открывается так:
Вкладки исчезли, и если нажать на некоторые кнопки, которые перемещаются на другие страницы, приложение вылетает. Похоже, что я изменил вкладку до того, как Shell была готова, и вызвал это странное поведение.
Вопрос:
Есть ли способ узнать, что приложение завершило запуск, чтобы я мог вызвать некоторые другие как изменить текущую вкладку оболочки?