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

当用户点击Xamarin Forms应用程序中的本地通知时,如何导航到特定页面?,xamarin,xamarin.forms,xamarin.ios,uilocalnotification,localnotification,Xamarin,Xamarin.forms,Xamarin.ios,Uilocalnotification,Localnotification,您好,我正在开发Xamarin表单应用程序。我已经在应用程序中实现了本地通知。触发通知后,单击通知后,它必须导航到特定页面。 在Appdelegate.cs的iOS项目中,我编写了这个方法 public async override void ReceivedLocalNotification(UIApplication application, UILocalNotification notification) 当用户点击通知时将触发。在这里,我需要导航到一个页面。在这里,我写了下

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

    public async  override void ReceivedLocalNotification(UIApplication application, UILocalNotification notification)
当用户点击通知时将触发。在这里,我需要导航到一个页面。在这里,我写了下面一行代码

            App.Current.MainPage  = new NavigationPage(new FavoritesPage());
它正在导航到收藏夹页面,但只是显示一个空白页面。OnNavigatedTo方法没有调用FavoritesViewModel,并且在Onnavigated to中调用了一个方法,该方法将id(此id来自通知)作为参数以获取特定的收藏夹 这里有两个问题 1) 如何导航到特定页面 2) 如何在页面导航中传递参数。
有人能帮我解决这个问题吗。

使用MessagingCenter,设置MessagingCenter的内容页类型或url。发送,然后是MessagingCenter。订阅和加载

使用MessagingCenter,设置MessagingCenter的内容页类型或url。发送,然后是MessagingCenter。订阅和加载

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);
    });
}
public应用程序()
{
初始化组件();
主页=新导航页(新主页());
订阅(此“推送”,异步(发送方,favoriteID)=>
{
var favorite=new FavoritesPage();
favorite.FavoriteID=FavoriteID;
wait(主页作为NavigationPage).PushAsync(收藏夹,true);
});
}
当您呼叫
MessagingCenter.Send(此“推”、“01”)时,此Lambda将触发
字符串01这里是我要推的ID

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

对于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);
    });
}
public应用程序()
{
初始化组件();
主页=新导航页(新主页());
订阅(此“推送”,异步(发送方,favoriteID)=>
{
var favorite=new FavoritesPage();
favorite.FavoriteID=FavoriteID;
wait(主页作为NavigationPage).PushAsync(收藏夹,true);
});
}
当您呼叫
MessagingCenter.Send(此“推”、“01”)时,此Lambda将触发
字符串01这里是我要推的ID

对于2:
在我进入一个新页面之前,我在这个页面中定义了一个名为
FavoriteID
的属性,然后使用上面的方法传递字符串。

我对xamarin非常陌生。如果您能提供一段代码来获取此donetake,那就太好了。我是xamarin的新手。如果您能提供一段代码来获取此done,那就太好了。请看一看您解决了问题了吗?您解决了问题了吗?嘿,谢谢您的回复。我如何在android中执行相同的步骤?当用户点击android中的通知时,将触发哪个方法?@SanthoshKumar当您编写Send方法时,将触发Subscribe。我想问的是,在iOS中,这个方法是public async override void ReceivedLocalNotification(UIApplication application,UILocalNotification)将在用户点击通知时触发。同样,当用户点击通知时,android会触发什么方法?安卓系统中有没有类似的方法ReceivedLocalNotification@SanthoshKumar我发现一根线可能对你有帮助。这是关于如何创建通知并触发它。您只需要修改if语句中的push方法。。谢谢你的回复。我只需要一个方法,当用户点击通知时就会触发。我正在从PCL创建本地通知。我只需要MainActivity.cs中的一个方法,当用户点击通知时就会触发。谢谢你的回复。我如何在android中执行相同的步骤?当用户点击android中的通知时,将触发哪个方法?@SanthoshKumar当您编写Send方法时,将触发Subscribe。我想问的是,在iOS中,这个方法是public async override void ReceivedLocalNotification(UIApplication application,UILocalNotification)将在用户点击通知时触发。同样,当用户点击通知时,android会触发什么方法?安卓系统中有没有类似的方法ReceivedLocalNotification@SanthoshKumar我发现一根线可能对你有帮助。这是关于如何创建通知并触发它。您只需要修改if语句中的push方法。。谢谢你的回复。我只需要一个方法,当用户点击通知时就会触发。我正在从PCL创建本地通知。我只需要MainActivity.cs中的一个方法,当用户点击通知时应该触发该方法