Afixar seu aplicativo na barra de tarefas

Agora pode pedir programaticamente aos utilizadores que fixem a sua aplicação Win32 ou WinUI na barra de tarefas, tal como pode fixar a sua aplicação no menu Iniciar. E você pode verificar se seu aplicativo está fixado no momento e se a barra de tarefas permite fixação.

Captura de ecrã de uma barra de tarefas do Windows 11 a mostrar a aplicação aí fixada.

Important

Requer Atualização do Fall Creators: Você deve direcionar o SDK 16299 e estar executando a compilação 16299 ou posterior para usar as APIs da barra de tarefas.

APIs importantes: classe TaskbarManager

Quando você deve pedir ao usuário para fixar seu aplicativo na barra de tarefas?

A classe TaskbarManager permite que você peça ao usuário para fixar seu aplicativo na barra de tarefas; O usuário deve aprovar a solicitação. Você se esforça muito para criar um aplicativo estelar, e agora você tem a oportunidade de pedir ao usuário para fixá-lo na barra de tarefas. Mas antes de nos aprofundarmos no código, aqui estão algumas coisas que você deve ter em mente ao projetar sua experiência:

  • Crie uma experiência do usuário sem interrupções e facilmente descartável em seu aplicativo com um apelo à ação claro. Evite usar caixas de diálogo e submenus para essa finalidade. Recomenda-se ícones de fixação acessíveis ou uma interface de utilizador semelhante, embora não sejam obrigatórios.
  • Certifique-se de que seu aplicativo tenha valor para o usuário antes de pedir que ele o fixe.
  • Não peça a um utilizador para fixar a sua aplicação se o mosaico já estiver fixado ou se o dispositivo não o suportar. (Este artigo explica como determinar se a fixação é suportada.)
  • Não peça repetidamente ao utilizador para afixar a sua aplicação (ele provavelmente ficará irritado).
  • Não utilize a API de pinos sem interação explícita do utilizador ou quando a sua aplicação estiver minimizada/não aberta. Seu aplicativo deve estar em primeiro plano para que o processo funcione.
  • Não use instaladores para chamar a API.

Aprovação do recurso de acesso limitado (LAF)

Important

A fixação da barra de tarefas é um recurso de acesso limitado (consulte a classe LimitedAccessFeatures). Para obter mais informações ou solicitar um código de desbloqueio, use o Formulário de Pedido de Token de Acesso LAF.

1. Verifique se as APIs necessárias existem

Win32

Se pretender utilizar TaskbarManager a partir da sua aplicação de ambiente de trabalho WIn32, terá de verificar se existe suporte para aplicações de ambiente de trabalho. Você pode procurar a interface do ITaskbarManagerDesktopAppSupportStatics marcador na fábrica de TaskbarManager ativação para executar essa verificação. Se essa interface não estiver disponível, não será possível utilizar TaskbarManager a partir da sua aplicação de desktop.

if (winrt::try_get_activation_factory<winrt::Windows::UI::Shell::TaskbarManager, winrt::Windows::UI::Shell::ITaskbarManagerDesktopAppSupportStatics>())
{
    // TaskbarManager desktop app support is available.
}
else
{
    // TaskbarManager desktop app support is not available.
}

2. Verifique se a barra de tarefas está presente e permite a fixação

Os aplicativos do Windows podem ser executados em uma ampla variedade de dispositivos; Nem todos suportam a barra de tarefas. Neste momento, apenas os dispositivos Desktop suportam a barra de tarefas. Além disso, os aplicativos podem solicitar fixação, mas a fixação pode não ser permitida em nenhum momento. Sugere-se que os aplicativos verifiquem se a fixação é permitida antes que a experiência do usuário seja exibida para evitar confundir os usuários.

Mesmo que a barra de tarefas esteja disponível, uma política de grupo na máquina do usuário pode desabilitar a fixação da barra de tarefas. Portanto, antes de tentar fixar seu aplicativo, você precisa verificar se a fixação na barra de tarefas é suportada. A propriedade TaskbarManager.IsPinningAllowed retorna true se a barra de tarefas estiver presente e permitir a fixação.

// Check if taskbar allows pinning, apps may request pinning, but pinning may not be allowed at any given time. It is suggested that apps check whether pinning is allowed before a UX is surfaced in order to prevent confusing users.

bool isPinningAllowed = TaskbarManager.GetDefault().IsPinningAllowed;

Important

Há também requisitos que devem ser cumpridos no momento em que a chamada é realmente feita para que o pedido de PIN seja aceito.

  • O aplicativo está em primeiro plano
  • O aplicativo tem uma entrada no menu Iniciar
  • Para que as notificações sejam exibidas, o usuário deve ter as notificações do sistema habilitadas. Recomendamos que você apresente esse requisito aos usuários dentro da UX do aplicativo.

Esses requisitos não resultarão em uma exceção se não forem atendidos, a solicitação de pin será simplesmente negada. IsPinningAllowed pode ser chamado para determinar se uma solicitação de PIN (prompt) será permitida.

Note

Se você não quiser fixar seu aplicativo na barra de tarefas e quiser apenas descobrir se a barra de tarefas está disponível, use a propriedade TaskbarManager.IsSupported .

3. Verifique se o seu aplicativo está atualmente fixado na barra de tarefas

Obviamente, não adianta pedir ao usuário para permitir que você fixe o aplicativo na barra de tarefas se ele já estiver fixado lá. Você pode usar o método TaskbarManager.IsCurrentAppPinnedAsync para verificar se a aplicação já está fixada antes de consultar o utilizador.

// Check whether your app is currently pinned
bool isPinned = await TaskbarManager.GetDefault().IsCurrentAppPinnedAsync();

if (isPinned)
{
    // The app is already pinned--no point in asking to pin it again!
}
else
{
    //The app is not pinned.
}

4. Fixe seu aplicativo

Se a barra de tarefas estiver presente e a fixação for permitida e seu aplicativo não estiver fixado no momento, convém mostrar uma dica sutil para que os usuários saibam que eles podem fixar seu aplicativo. Por exemplo, você pode mostrar um ícone de pino em algum lugar na interface do usuário em que o usuário possa clicar.

Se o usuário clicar na interface do usuário de sugestão de pino, você chamará o método TaskbarManager.RequestPinCurrentAppAsync . Esse método exibe uma caixa de diálogo que solicita que o usuário confirme se deseja que seu aplicativo seja fixado na barra de tarefas.

Important

Isso deve ser invocado a partir de uma thread principal da interface do usuário, caso contrário, uma exceção será lançada.

// Request to be pinned to the taskbar.
bool isPinned = await TaskbarManager.GetDefault().RequestPinCurrentAppAsync();

Diálogo de fixação

Esse método retorna um valor booleano que indica se seu aplicativo agora está fixado na barra de tarefas. Se seu aplicativo já estiver fixado, o método retornará true imediatamente sem mostrar a caixa de diálogo ao usuário. Se o usuário clicar em "não" na caixa de diálogo ou fixar seu aplicativo na barra de tarefas não for permitido, o método retornará false. Caso contrário, o usuário clicou em sim e o aplicativo foi fixado, e a API retornará true.

Resources