我有一个应用程序,它在Windows 10上按预期工作。但在Windows 10 Mobile上,当用户按下按钮时,应用程序关闭。在我的后台请求事件处理程序中,我甚至注释掉了GoBack()方法,但app仍然关闭。
private void MobileNavigationService_BackRequested(object sender, BackRequestedEventArgs e)
{
e.Handled = true;
var navigationService = UnityConfiguration.Resolve<IMobileNavigationService>();
if (navigationService.CanGoBack())
{
//navigationService.GoBack();
}
}
我有一种感觉,即使我设置了 e.Handled = true ,它也会忽略它并且就像没有处理程序一样。
更新
作为附加信息
App只有一个页面,Shell。它有常见的东西,如菜单和标题栏。它也有框架。在框架中,我打开所有其他页面。因此,对我的应用程序来说,意味着回到那个框架,而不是整个应用程序。我想覆盖默认行为。
答案 0 :(得分:-1)
你可以在GitHub中从微软获得这个DEMO
protected override void OnNavigatedTo(NavigationEventArgs e)
{
bool optedIn = false;
if ((bool)e.Parameter)
{
optedIn = true;
}
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame.CanGoBack && optedIn)
{
// If we have pages in our in-app backstack and have opted in to showing back, do so
SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
}
else
{
// Remove the UI from the title bar if there are no pages in our in-app back stack
SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed;
}
}