Ich habe UWP App mit Prism und AppShell. Ich möchte Bestätigung Dialog vor dem Beenden von BackButton hinzufügen. Ich versuchte dies:Wie behandelt HardwareButtons.BackPressed in UWP?
protected override Task OnLaunchApplicationAsync(LaunchActivatedEventArgs args)
{
...
SystemNavigationManager.GetForCurrentView().BackRequested += App_BackRequested;
...
}
private void App_BackRequested(object sender, BackRequestedEventArgs e)
{
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame == null)
{
return;
}
if (rootFrame.CanGoBack && e.Handled == false)
{
<add confirm dialog here>
e.Handled = true;
}
}
Aber rootFrame ist immer null und wenn die Geschichte Stack leer und ich drückte Backbutton App nahe ist, selbst wenn imake dies:
private void App_BackRequested(object sender, BackRequestedEventArgs e)
{
e.Handled = true;
}
Auch habe ich versucht,
HardwareButtons.BackPressed += App_BackRequested;
und es hilft auch nicht.
+1. Wenn Sie erklären, was Sie dadurch erreichen, ist es für die PO leichter zu verstehen, wie Sie das Problem angehen. –
mit Prism gibt die Möglichkeit, Hardware Buttons Ereignisse wie (CameraButtonReleased, CameraButtonPressed, CameraButtonHalfPressed, GoBackRequested, .....) nur in OnLaunchApplicationAsync-Methode zu implementieren –