我有一個應用程序,其中我主要有一個webview。我有問題。我已經使後退按鈕轉到以前的網頁的webview它工作正常,當它沒有以前的網頁時,它退出與一個MessageBox(彈出)。問題是,當我瀏覽其他頁面,然後按回它遞歸觸發後退按鈕事件,並顯示在MessageBoxBackRequested在UWP應用程序中觸發不止一次
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));
}
而且blanckPage1的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;
}
};
爲了使它例如更清楚,當我打開網頁視圖導航到WWW應用。 example.com然後按照鏈接我會到其他頁面(例如www.example.com/link/firstlink)。然後我會將我的框架導航到blankpage1,然後從那裏按下。然後回到前一頁(www.example.com/link/firstlink),它會回到起始頁面(www.example.com)並顯示退出彈出窗口,我該如何解決這個問題?
謝謝你的所有重播。