Navigation 如何在UWP托管应用程序(JS)中完全禁用后退按钮

Navigation 如何在UWP托管应用程序(JS)中完全禁用后退按钮,navigation,uwp,windows-10,Navigation,Uwp,Windows 10,我有一个UWP托管的应用程序(JavaScript),指向一个网站 在网站内部,我有一个iframe,可以导航到不同的URL 当iframe导航时,UWP应用程序的“后退”按钮突然出现在标题栏中 我想完全禁用/删除“后退”按钮,因为: 单击时,如果iframe不再位于DOM中,则会使应用程序崩溃 在我的例子中,返回导航与iframe中的内容无关 该网站是一个单页webapp,一般不需要反向导航 说明默认情况下应禁用“标题栏后退”按钮。我没有做任何事情来启用它 我已尝试按如下方式截取事件,但ifr

我有一个UWP托管的应用程序(JavaScript),指向一个网站

在网站内部,我有一个iframe,可以导航到不同的URL

当iframe导航时,UWP应用程序的“后退”按钮突然出现在标题栏中

我想完全禁用/删除“后退”按钮,因为:

  • 单击时,如果iframe不再位于DOM中,则会使应用程序崩溃
  • 在我的例子中,返回导航与iframe中的内容无关
  • 该网站是一个单页webapp,一般不需要反向导航
  • 说明默认情况下应禁用“标题栏后退”按钮。我没有做任何事情来启用它

    我已尝试按如下方式截取事件,但iframe仍执行反向导航(如果不再有iframe,应用程序将崩溃):


    有人知道如何防止UWP平台为托管应用程序添加“后退”按钮吗?

    您不必连接onBackRequested()回调,只需使用这部分代码关闭“后退”按钮的可见性即可:

    var uiCore = Windows.UI.Core;
    var navMgr = uiCore.SystemNavigationManager.getForCurrentView();
    navMgr.appViewBackButtonVisibility = uiCore.AppViewBackButtonVisibility.collapsed;
    

    嗯。。。在Microsoft UWP示例中,您可以找到另一种隐藏/显示此按钮的方法。我只是用他们的样本作为UWP应用程序的骨架。所以,我所做的隐藏后箭头如下

    public RootFrameNavigationHelper(Frame rootFrame, Microsoft.UI.Xaml.Controls.NavigationView currentNavView)
        {
        ...
          if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 6))
          {
                        // Add two lines
                        CurrentNavView.IsBackEnabled = false;
                        CurrentNavView.IsBackButtonVisible =  Microsoft.UI.Xaml.Controls.NavigationViewBackButtonVisible.Collapsed;
                        // And comment this line 
                        //CurrentNavView.BackRequested += NavView_BackRequested;
          }
        ...
        }
    
    public RootFrameNavigationHelper(Frame rootFrame, Microsoft.UI.Xaml.Controls.NavigationView currentNavView)
        {
        ...
          if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 6))
          {
                        // Add two lines
                        CurrentNavView.IsBackEnabled = false;
                        CurrentNavView.IsBackButtonVisible =  Microsoft.UI.Xaml.Controls.NavigationViewBackButtonVisible.Collapsed;
                        // And comment this line 
                        //CurrentNavView.BackRequested += NavView_BackRequested;
          }
        ...
        }