私は主にwebviewを持っているアプリを持っています。私は問題があります。私はwebviewの以前のWebページに戻って戻るボタンを作っています。それは正常に動作し、前のページがないときはMessageBox(ポップアップ)で終了します。問題は、私は戻って別のページやプレスを移動するとき、それは再帰的にボタンイベントをバックトリガし、メッセージボックスURPアプリでBackRequestedが2回以上トリガーされています
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コードから別のページに移動しています は、私はWebViewのはWWWにナビゲートするアプリを開いたとき例えばそれがより明確にするために
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;
}
};
です。 example.comのリンクをたどって、他のページ(例:www.example.com/link/firstlink)にアクセスします。私はblankpage1に私のフレームをナビゲートし、そこから私は背を押します。それから、前のページ(www.example.com/link/firstlink)に戻ってくるのを開始したページ(www.example.com)が表示され、終了ポップアップが表示されます。これをどのように修正できますか?
ありがとうございました。