Windows phone 10 - Afficher un popup de confirmation avant de fermer l'application

 25/09/2019 |   Admin |  Windows phone


Dans une application universelle, pour la famille Windows Phone, l'appui sur le bouton Back entraine un retour sur la page précédente. Si cette dernière est la première page de l'application, l'application va se fermer.

Ce fonctionnement est logique mais un utilisateur peut utiliser cette fonction intentionnellement. C'est pour cela que l'ajout d'un popup de confirmation peut-être utile dans certains cas.

Dans la méthode OnLaunched de la classe App (App.xaml.cs)

Dans un premier temps, il faut tester si le device est un téléphone et si le bouton back est présent :

if (ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
    HardwareButtons.BackPressed += OnBackPressed;
}

Ensuite, déclarer une méthode privée au sein de cette même classe :

private async void OnBackPressed(object sender, BackPressedEventArgs e)
{
    var frame = (Frame)Window.Current.Content;
    e.Handled = true;

    if (frame.CanGoBack)
    {        
        frame.GoBack();
    }
    else
    {
        var msg = new MessageDialog("Etes-vous sûr de vouloir quitter l'application ?");
        var okBtn = new UICommand("Oui");
        var cancelBtn = new UICommand("Non");
        msg.Commands.Add(okBtn);
        msg.Commands.Add(cancelBtn);
        IUICommand result = await msg.ShowAsync();
 
       if (result != null && result.Label == "Oui")
       {
            Application.Current.Exit();
       }
    }
}

[Capture]