如何在 Xamarin Forms iOS 中的特定页面上导航?

Posted

技术标签:

【中文标题】如何在 Xamarin Forms iOS 中的特定页面上导航?【英文标题】:How to navigate on specific page in Xamarin Forms iOS? 【发布时间】:2018-06-28 07:24:08 【问题描述】:

我正在使用Xamarin Forms 并使用ANH 通知。我能够收到来自 ANH 的通知。但问题是当我收到通知并尝试从通知区域打开它时,我想在 ios 的特定通知页面上重定向。我在android上用过PendingIntent,但对于iOS我不知道。

另外,我想在应用打开并收到通知时在标签上显示一个徽章。我在 iOS 上使用 CustomRenderer。我的 TabRenderer 代码是:

public class BottomTabbedPage : TabbedRenderer
       
    public override void ViewWillAppear(bool animated)
    
        base.ViewWillAppear(animated);
        TabBar.UnselectedItemTintColor = UIColor.FromRGB(208,208,208);
        TabBar.BackgroundColor = UIColor.White;
        TabBar.Items[1].BadgeValue = SettingClass.MenuNotificationCount == 0 ? null : SettingClass.MenuNotificationCount.ToString();
        TabBar.Items[2].BadgeValue = SettingClass.PromoNotificationCount == 0 ? null  : SettingClass.PromoNotificationCount.ToString();
    

当应用程序启动时,会显示徽章,但当应用程序处于后台并收到通知时,计数会增加,但当应用程序启动时,徽章不会更新。我该如何解决这个问题?

【问题讨论】:

【参考方案1】: 要导航到特定页面,您可以在收到或处理通知时使用 AppDelegate.cs 中的以下代码。

等待 App.Current.MainPage.Navigation.PushAsync(new specificPage());

要在应用打开时更新徽章计数,您需要在收到通知时捕获徽章计数并进行相应更新。

【讨论】:

但是在 iOS 中我们如何识别应用程序是从通知中打开的? 应用打开时会调用下面的方法。 public override void OnActivated(UIApplication uiApplication). 好的,谢谢,我会检查并尝试一下。

以上是关于如何在 Xamarin Forms iOS 中的特定页面上导航?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Xamarin Forms 项目调用 Android 和 iOS 项目中可用的方法?

如何更改 Xamarin.Forms 中的应用程序图标?

Xamarin Forms - 状态栏与 IOS 中的内容重叠(safeareainsets 问题)

Xamarin.Forms iOS 依赖服务中的触觉反馈崩溃

访问Xamarin Forms iOS应用程序中的共享存储位置

Xamarin.Forms 无法更改本地设备上 Xamarin.iOS 中的应用程序图标