Share via


APIs de bloco primário

As APIs de bloco primário permitem que você verifique se o app está fixado em Iniciar e solicite a fixação do bloco primário do app.

Importante

Requer Atualização para Criadores: você deve direcionar o SDK 15063 e estar executando o build 15063 ou posterior para usar as APIs de bloco primário.

APIs importantes: classe StartScreenManager, ContainsAppListEntryAsync, RequestAddAppListEntryAsync

Quando usar APIs de bloco primário

Você se esforçou para criar uma ótima experiência para o bloco principal do aplicativo e agora você tem a oportunidade de solicitar ao usuário para fixá-lo em Iniciar. Antes de mergulharmos no código, aqui estão alguns itens que você deve lembrar ao projetar a experiência:

  • Crie uma experiência do usuário sem interrupções e que possa ser ignorada facilmente no aplicativo com uma chamada de ação clara para "Fixar Bloco Dinâmico".
  • Explique claramente o valor do Bloco Dinâmico do aplicativo antes de pedir ao usuário para fixá-lo.
  • Não peça a um usuário para fixar o bloco do aplicativo se já tiver sido fixado ou se o dispositivo não oferecer suporte a ele (mais informações a seguir).
  • Não peça repetidamente para o usuário fixar o bloco do aplicativo (eles provavelmente ficarão aborrecidos).
  • Não chame a fixação de API sem interação explícita do usuário ou quando o app estiver minimizado/não abrir.

Verificar se as APIs existem

Se o aplicativo oferece suporte às versões mais antigas do Windows 10, é preciso verificar se essas APIs de bloco primário estão disponíveis. É possível fazer isso usando ApiInformation. Se as APIs do bloco principal não estiverem disponíveis, evitar a execução de todas as chamadas para as APIs.

if (ApiInformation.IsTypePresent("Windows.UI.StartScreen.StartScreenManager"))
{
    // Primary tile API's supported!
}
else
{
    // Older version of Windows, no primary tile API's
}

Verifique se Iniciar oferece suporte ao aplicativo

Dependendo do menu Iniciar atual e do tipo de aplicativo, pode não existir suporte para a fixação do aplicativo na tela inicial atual. Somente computador desktop e dispositivos móveis oferecem suporte à fixação do bloco primário em Iniciar. Portanto, antes de mostrar qualquer interface do usuário de fixação ou executar qualquer código, primeiro você precisa verificar se o aplicativo é suportado na tela inicial atual. Caso não exista o suporte, não solicite ao usuário para fixar o bloco.

// Get your own app list entry
// (which is always the first app list entry assuming you are not a multi-app package)
AppListEntry entry = (await Package.Current.GetAppListEntriesAsync())[0];

// Check if Start supports your app
bool isSupported = StartScreenManager.GetDefault().SupportsAppListEntry(entry);

Verifique se você está atualmente fixado

Para descobrir se o bloco primário está atualmente fixado em Iniciar, use o método ContainsAppListEntryAsync.

// Get your own app list entry
AppListEntry entry = (await Package.Current.GetAppListEntriesAsync())[0];

// Check if your app is currently pinned
bool isPinned = await StartScreenManager.GetDefault().ContainsAppListEntryAsync(entry);

Fixar o bloco primário

Se o bloco primário atualmente não estiver fixado e o bloco for compatível com Iniciar, convém mostrar uma dica para que os usuários possam fixar o bloco primário.

Observação

Você deve chamar essa API de um thread da interface do usuário enquanto o aplicativo está em primeiro plano, e você deve chamar essa API somente depois que o usuário tiver solicitado intencionalmente a fixação do bloco primário (por exemplo, depois que o usuário tiver clicado em sim na dica sobre como fixar o bloco).

Se o usuário clica no botão para fixar o bloco primário, você poderia chamar o método RequestAddAppListEntryAsync para solicitar que o bloco seja fixado em Iniciar. Isso exibirá uma caixa de diálogo solicitando ao usuário para confirmar se eles querem seu bloco fixado em Iniciar.

Isso retornará um valor booleano que representa se o bloco agora está fixado em Iniciar. Se o bloco já foi fixado, isso retornará imediatamente o valor true sem mostrar a caixa de diálogo para o usuário. Se o usuário clicar em não na caixa de diálogo ou se não existir suporte para a fixação do bloco em Iniciar, isso retornará false. Caso contrário, o usuário clicou em sim e o bloco foi fixado, e a API retornará true.

// Get your own app list entry
AppListEntry entry = (await Package.Current.GetAppListEntriesAsync())[0];

// And pin it to Start
bool isPinned = await StartScreenManager.GetDefault().RequestAddAppListEntryAsync(entry);

Recursos