APIs de bloco primário
Observação
Os Blocos Dinâmicos são um recurso do Windows 10 que não é compatível com versões posteriores do Windows. Para novos aplicativos, recomendamos que você siga as diretrizes atuais para ícones de aplicativos.
As APIs de bloco primário permitem que você verifique se seu aplicativo está fixado no momento na tela inicial e solicite a fixação do bloco primário do aplicativo.
Importante
Requer Atualização para Criadores: você deve direcionar o SDK 15063 e estar executando o Windows 10 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 muito para criar uma ótima experiência para o bloco principal do seu aplicativo e agora tem a oportunidade de pedir ao usuário para fixá-lo na tela inicial. 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 uma frase de chamariz clara "Fixar Bloco Dinâmico".
- Explique claramente o valor do Bloco Dinâmico do seu aplicativo antes de pedir ao usuário para fixá-lo.
- Não peça a um usuário para fixar o bloco do seu aplicativo se o bloco já estiver fixado ou se o dispositivo não der suporte a ele (mais informações a seguir).
- Não peça repetidamente ao usuário para fixar o bloco do seu aplicativo (ele provavelmente ficará irritado).
- Não chame a API de fixação sem interação explícita do usuário ou quando seu aplicativo estiver minimizado/não aberto.
Verificando se as APIs existem
Se o seu aplicativo der suporte a versões mais antigas do Windows 10, você precisará verificar se essas APIs de bloco primário estão disponíveis. Você faz isso usando ApiInformation. Se as APIs de bloco primário não estiverem disponíveis, evite executar 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
}
Verificar se a tela inicial é compatível com seu aplicativo
Dependendo do menu Iniciar atual e do seu tipo de aplicativo, pode não haver suporte para fixar seu aplicativo na tela inicial atual. Por exemplo, dispositivos IoT ou xbox não dão suporte à fixação na tela inicial. Portanto, antes de mostrar qualquer interface do usuário de PIN ou executar qualquer código PIN, primeiro você precisa verificar se seu aplicativo é compatível com a tela inicial atual. Se não houver suporte, não solicite que o usuário fixe 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á fixado no momento
Para descobrir se o bloco primário está fixado no momento 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 principal
Se o bloco primário não estiver fixado no momento e o bloco tiver suporte na tela inicial, talvez você queira mostrar uma dica aos usuários de que eles podem fixar o bloco principal.
Observação
Você deve chamar essa API de um thread de interface do usuário enquanto seu aplicativo está em primeiro plano e só deve chamar essa API depois que o usuário tiver solicitado intencionalmente que o bloco primário seja fixado (por exemplo, depois que o usuário clicou em sim para sua dica sobre como fixar o bloco).
Se o usuário clicar no botão para fixar o bloco primário, chame o método RequestAddAppListEntryAsync para solicitar que o bloco seja fixado em Iniciar. Isso exibirá uma caixa de diálogo solicitando que o usuário confirme se deseja que o bloco seja fixado na tela inicial.
Isso retornará um booliano representando se o bloco agora está fixado em Iniciar. Se o bloco já tiver sido fixado, ele 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 não houver suporte para fixar o bloco na tela inicial, 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);