0

我有一个 Xamarin.Forms 应用程序 (v4.3.0.908675),如下所示:

在此处输入图像描述

它有几个选项卡并使用非常基本的 XF Shell 进行布局。

它接收多个推送通知,其中一个应用程序需要在点击通知后打开特定选项卡。该应用程序然后它冷启动。

为了做到这一点,我正在尝试以下操作: 在我的 App.xaml.cs 中,我有一个方法,每次打开通知时都会调用该方法,该方法会向 shell 发送消息以选择选项卡。

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 准备好之前更改了选项卡并导致了这种奇怪的行为。

问题:

有没有办法知道应用程序已经完成启动,所以我可以调用其他方法,比如更改当前的 Shell 选项卡?

4

0 回答 0