如何在UWP托管的应用完全禁用后退按钮(JS)

问题描述 投票:2回答:2

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

网站里面,我有一个iframe,让导航到不同的URL。

当IFRAME导航中,UWP应用程序的“返回”按钮突然出现在标题栏中。

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

  1. 单击时,它崩溃的应用程序,如果在iframe不再是在DOM
  2. 在我的情况下,后退导航是不相关的iframe里面的内容
  3. 该网站是一个单页web应用程序并没有只是没有必要在一般后退导航

MSDN documentation说,标题栏后退按钮应该被默认禁用。我没有做任何事情来启用它。

我试图拦截事件,如下所示,但在iframe仍然没有回导航(或应用程序崩溃,如果不再有一个iframe):

    // In the main website window (not the iframe)
    var uiCore = Windows.UI.Core;
    var navMgr = uiCore.SystemNavigationManager.getForCurrentView();
    navMgr.onbackrequested = (e) => {
        console.log("Back navigation"); // This is never logged
        navMgr.appViewBackButtonVisibility = uiCore.AppViewBackButtonVisibility.collapsed;
        e.handled = true;
    };

有谁知道如何防止UWP平台,将后退键托管应用程序?

navigation uwp windows-10
2个回答
2
投票

相反,挂钩的onBackRequested()回调,你应该能够只是关闭返回按钮的知名度与这部分代码:

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

0
投票

嗯......在微软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;
      }
    ...
    }
© www.soinside.com 2019 - 2024. All rights reserved.