当用户点击 Xamarin Forms 应用程序中的本地通知时如何导航到特定页面?

How to navigate to a particular page when user taps on a Local Notification in Xamarin Forms app?

您好,我正在开发 Xamarin Forms 应用程序。我在应用程序中实现了本地通知。触发通知后,单击通知必须导航到特定页面。 在 Appdelegate.cs 的 iOS 项目中,我写了这个方法

    public async  override void ReceivedLocalNotification(UIApplication application, UILocalNotification notification)

当用户点击通知时将触发。在这里我需要导航到一个页面。在这里我写了下面的代码行

            App.Current.MainPage  = new NavigationPage(new FavoritesPage());

它正在导航到“收藏夹”页面,但只显示一个空白页面。 OnNavigatedTo 方法不调用 FavoritesViewModel 并且在 Onnavigated 中调用一个方法,该方法将 id(此 id 来自通知)作为参数来获取特定的收藏夹 这里有两个问题 1)如何导航到特定页面 2) 如何随页面导航一起传递参数。 有人可以帮我解决这个问题吗?

使用 MessagingCenter,为 MessagingCenter.Send 设置 ContentPage 类型或 url,然后 MessagingCenter.Subscribe 并加载

对于 1:

您想推送到一个新页面,但您所做的是替换应用的主页面。请尝试 PushAsync。您可以在应用程序中订阅MessagingCenter

public App ()
{
    InitializeComponent();

    MainPage = new NavigationPage(new MainPage());

    MessagingCenter.Subscribe<object, string>(this, "Push", async (sender, favoriteID) =>
    {
        var favorite = new FavoritesPage();
        favorite.FavoriteID = favoriteID;
        await (MainPage as NavigationPage).PushAsync(favorite, true);
    });
}

此 Lambda 将在您调用 MessagingCenter.Send<object, string>(this, "Push", "01"); 时触发 这里的字符串01就是我要推送的ID

对于 2:

在我推送到一个新页面之前,我在这个页面定义了一个名为FavoriteID的属性,然后我使用上面的方法传递字符串。