【问题标题】:How to navigate to a particular page when user taps on a Local Notification in Xamarin Forms app?当用户点击 Xamarin Forms 应用程序中的本地通知时,如何导航到特定页面?
【发布时间】:2018-06-27 12:35:10
【问题描述】:

您好,我正在开发一个 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)如何将参数与页面导航一起传递。 谁能帮我解决这个问题。

【问题讨论】:

  • 问题解决了吗?

标签: xamarin xamarin.forms xamarin.ios uilocalnotification localnotification


【解决方案1】:

对于 1:

您想要推送到新页面,但您所做的是替换应用程序的 MainPage。请尝试PushAsync。您可以在 App 中订阅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);
    });
}

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

对于 2:

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

【讨论】:

  • 您好,感谢您的回复。我怎样才能在android中执行相同的步骤?当用户在 android 中点击通知时会触发哪个方法?
  • @SanthoshKumar 当你编写 Send 方法时,Subscribe 会触发。
  • 我在问,在 iOS 中,这个方法 public async override void ReceivedLocalNotification(UIApplication application, UILocalNotification notification) 将在用户正确点击通知时触发。同样,当用户点击通知时,android 中会触发什么方法? android中有没有类似于ReceivedLocalNotification的方法
  • @SanthoshKumar 我发现一个线程可以帮助你here。这是关于如何创建通知并触发它。只需修改 if 语句中的 push 方法即可。
  • 嘿.. 感谢您的回复。我只需要一个在用户点击通知时触发的方法。正在从 PCL 创建本地通知。我只需要 MainActivity.cs 中的一个方法,它应该在用户点击通知时触发
【解决方案2】:

使用 MessagingCenter,为 MessagingCenter.Send 设置 ContentPage 类型或 url,然后是 MessagingCenter.Subscribe & load

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-27
  • 2019-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-13
相关资源
最近更新 更多