Curso Windows Phone – Como tratar o clique do botão Back do celular com Windows Phone

Olá pessoal, tudo bom?

Segue uma dica rápida sobre como tratar o clique do botão Back (voltar) de um aparelho celular com o sistema Windows Phone da Microsoft. Essa dica pode vir a ser importante em situações onde o desenvolvedor queira perguntar ao usuário, por exemplo, se ele realmente gostaria de sair da aplicação que está usando, ou quando você quiser personalizar a ação desse botão.

Veja o código C# que você deve adicionar em toda página da aplicação Windows Phone onde se queira utilizar esse recurso:

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
   if (MessageBox.Show("Sair do aplicativo?", "Logout", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
   {
      //Faça alguma coisa aqui...
      base.OnBackKeyPress(e);
   }
   else
      e.Cancel = true;
}

Grande abraço,
Eduardo Henrique Rizo

[twitter-follow screen_name=’eduardorizo’ show_count=’yes’]

Post relacionado:

Curso Windows Phone – Tópicos

17 comentários em “Curso Windows Phone – Como tratar o clique do botão Back do celular com Windows Phone”

  1. Pingback: Curso Windows Phone – Tópicos « Blog do Eduardo H. Rizo

  2. Há algum código de obrigue a aplicação a fechar sem estamos na page inicial?
    Um amigo está a criar um jogo e queria poder fechar o jogo logo ao meio e gravar ao carregar no botão back depois de fazer a confirmação.

    1. Olá Davide, tudo bom?
      Não há nenhuma instrução que faça uma aplicação Windows Phone “fechar”. De uma lida no ciclo de vida de uma APP para entender um pouco melhor sobre isso.
      Não tenho muita certeza, mas pelo que já vi, me parece que há algo que pode ser feito quando o jogo está sendo desenvolvido utilizando XNA.

      Qualquer outra coisa, me fale.

      []s
      Eduardo

  3. Olá Eduardo , inseri o codigo em minha pagina e recebi o seguinte erro, o que pode esta acontecendo ?

    Error Expected class, delegate, enum, interface, or struct

  4. Olá Eduardo, por acaso você saberia me dizer se é possível tratar os clicks nos botoes home e share também?
    precisava fazer um aplicativo para um cliente em que o usuário não pudesse sair dele a não ser por senha. Porém, não consigo achar uma solução já que é possível sair das aplicações por esses botoes também. Desde já Obrigado!!

    1. Olá Felipe, tudo bom?
      Apenas o botão Voltar (back) do Windows Phone pode ser manipulado e ter sua ação cancelada. Os outros botões físicos, como por exemplo, o botão de start e o botão de pesquisa não poderão ser manipulados. Detalhes sobre essas informações podem ser encontradas no “User Experience Design Guidelines for Windows Phone“.

      Há um outro link na Internet que também fala sobre o Guidelines for Windows Phone, que diz o seguinte:

      • “Developers do not have access to modify the Start button behavior…”
      • “Developers cannot modify or change the behavior of the Search Button.”
      • “Developers should only implement Back Button behaviors that navigate back or dismiss context menus or modal dialog boxes. All other implementations are prohibited.”
      • “Developers do not have access to modify the Power button behavior…”
      • “Developers cannot edit the audio transport controls overlay or override the Volume Buttons behaviors.”
      • “Developers cannot modify or change the behavior of the Camera Button.”

      Grande abraço,
      Eduardo H. Rizo

  5. Pingback: WP Clube [Artigo] Como tratar o clique do botão Back do celular no Windows Phone - WP Clube

  6. Olá Eduardo, eu estou criando um leitor de feed RSS, e coloquei uma função, que funciona assim:
    Quando o usuário escolher um item, uma webView que já existe, porém estava invisivel, ficará visivel, e a webView amostrará o conteudo do item que o usuario escolheu, eu consegui fazer isto, porém, eu tentei colocar para que quando o usuario tocasse no botão de voltar, se a webView estivesse visivel, ficasse novamente invisivel, mas não estou conseguindo fazer isto, meu codigo abaixo:

    protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
    {
    if webBrowser1.Visibility = Visibility.Visible
    {

    webBrowser1.Visibility = Visibility.Collapsed;
    }
    }

  7. Eduardo quero primeiro lhe parabenizar seu blog é muito bom e tem me ajudado bastante! Minha dúvida é a seguinte, não estou conseguindo tratar esse botão voltar, estou desenvolvendo um app em VB, fiz o que disse aqui mas não dá certo, poderia me ajudar? Meu código:

    Protected Overrides Sub OnBackKeyPress(e As CancelEventArgs)

    ‘código aqui…

    End Sub

    dá o erro: “sub OnBackKeyPress não pode ser declarada ‘Overrides’ porquê não substitui uma sub em uma base class.

    É o meu primeiro app e só falta isso pra terminar… Obrigado desde já!

  8. Eu gostaria de ao clicar no botão Back retornar para a página anterior do aplicativo, mas não estou conseguindo.

    Como posso fazer isso?
    Obrigado.

    1. Olá Thiago, tudo bom?
      Bem, a função padrão do “back” já seria essa, ou seja, voltar para a página anterior do aplicativo.
      Poderia explicar um pouco melhor como você está desenvolvendo?

      Abraços,
      Eduardo H. Rizo

Deixe um comentário para Eduardo H. Rizo Cancelar resposta