我有一个应用程序,其中我主要有一个 webview。我有问题。我已经将返回按钮转到 webview 的上一个网页,它工作正常,当它没有以前的页面时,它会以 MessageBox(Popup)退出。问题是当我浏览另一个页面并按下它时,它会递归触发返回按钮事件并显示 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));
}
而blankPage1的backRequested代码是
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;
}
};
为了更清楚,例如,当我打开应用程序时,webview 导航到 www.example.com,然后按照那里的链接,我将到达其他页面(例如 www.example.com/link/firstlink)。然后我将我的框架导航到blankpage1,然后我会从那里按回。然后返回上一页(www.example.com/link/firstlink),它来到起始页(www.example.com)并显示退出弹出窗口我该如何解决这个问题?
谢谢你所有的重播。