У меня есть приложение, в котором у меня в основном есть веб-просмотр. у меня проблема. я сделал кнопку «Назад», чтобы перейти на предыдущую веб-страницу веб-просмотра, она работает нормально, и когда у нее нет предыдущих страниц, она закрывается с помощью MessageBox (всплывающее окно). Проблема в том, что когда я перехожу на другую страницу и нажимаю назад, она рекурсивно запускает событие кнопки «Назад» и показывает MessageBox
Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested += (s, e) =>
{
e.Handled = true;
if (Web_view.CanGoBack)
{
Web_view.GoBack();
e.Handled = true;
}
else
{
quit();
e.Handled = true;
}
};
Выше приведен код моей главной страницы
private async void quit()
{
MessageDialog msg = new MessageDialog("Do you really want to quit?", "Quit");
msg.Commands.Add(new UICommand("Yes") { Id = 0 });
msg.Commands.Add(new UICommand("No") { Id = 1 });
var ans = await msg.ShowAsync();
if(ans.Id.Equals(0))
{
//System.Diagnostics.Debug.WriteLine("Exit");
App.Current.Exit();
}
}
это код функции выхода. Я перехожу на другую страницу с помощью кода
private void about_Click(object sender, RoutedEventArgs e)
{
Frame.Navigate(typeof(BlankPage1));
}
И код backRequested для BlanckPage1
SystemNavigationManager.GetForCurrentView().BackRequested += (s,e)=>
{
e.Handled = true;
// Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested -= BlankPage1_BackRequested;
//System.Diagnostics.Debug.WriteLine("BackRequested");
if (Frame.CanGoBack)
{
e.Handled = true;
Frame.GoBack();
}
else
{
e.Handled = true;
}
};
Чтобы было более понятно, например, когда я открываю приложение, веб-просмотр переходит на www.example.com, а затем, следуя ссылкам, я попаду на другую страницу (например, www.example.com/link/firstlink). затем я переведу свой фрейм на пустую страницу1 и оттуда нажму назад. затем вместо возврата на предыдущую страницу (www.example.com/link/firstlink) он переходит на начальную страницу (www.example.com) и показывает всплывающее окно выхода, как я могу это исправить?
Спасибо за все ваши повторы.