Obter informações de licença para apps e complementos
Este artigo demonstra como usar métodos da classe StoreContext no namespace Windows.Services.Store para obter informações de licença para o aplicativo atual e seus complementos. Por exemplo, você pode usar essas informações para determinar se as licenças do aplicativo ou de seus complementos estão ativas ou se são licenças de avaliação.
Observação
O namespace Windows.Services.Store foi introduzido no Windows 10, versão 1607 e só pode ser usado em projetos direcionados ao Windows 10 Anniversary Edition (10.0; Build 14393) ou uma versão posterior no Visual Studio. Se o aplicativo for direcionado a uma versão anterior do Windows 10, você deverá usar o namespace Windows.ApplicationModel.Store em vez do namespace Windows.Services.Store. Para obter mais informações, consulte este artigo.
Pré-requisitos
Este exemplo tem os seguintes pré-requisitos:
- Um projeto do Visual Studio para um aplicativo da Plataforma Universal do Windows (UWP) direcionado ao Windows 10 Anniversary Edition (10.0; Build 14393) ou uma versão posterior.
- Você criou um envio de aplicativo no Partner Center e este aplicativo é publicado na Loja. Opcionalmente, você pode configurar o aplicativo para que ele não seja detectável na Store enquanto você o testa. Para obter mais informações, confira nossas diretrizes de teste.
- Se você quiser obter informações de licença para um complemento para o aplicativo, também deverá criar o complemento no Partner Center.
O código neste exemplo pressupõe:
- O código é executado no contexto de uma Página que contém um ProgressRing denominado
workingProgressRing
e um TextBlock denominadotextBlock
. Esses objetos são usados para indicar que uma operação assíncrona está ocorrendo e exibir mensagens de saída, respectivamente. - O arquivo de código tem uma instrução using para o namespace Windows.Services.Store.
- O app seja um app de usuário único executado somente no contexto do usuário que o iniciou. Para obter mais informações, confira Compras e avaliações no aplicativo.
Observação
Se você tiver um aplicativo de área de trabalho que use a Ponte de Desktop, talvez seja necessário adicionar mais um código não mostrado neste exemplo para configurar o objeto StoreContext. Para obter mais informações, confira Como usar a classe StoreContext em um aplicativo da área de trabalho que usa a Ponte de Desktop.
Exemplo de código
Para obter informações de licença para o aplicativo atual, use o método GetAppLicenseAsync . Esse é um método assíncrono que retorna um objeto StoreAppLicense que fornece informações de licença para o aplicativo, incluindo propriedades que indicam se o usuário tem uma licença válida para usar o aplicativo (IsActive) e se a licença é para uma versão de avaliação (IsTrial).
Para acessar as licenças de complementos duráveis do aplicativo atual para os quais o usuário tem o direito de usar, use a propriedade AddOnLicenses do objeto StoreAppLicense . Essa propriedade retorna uma coleção de objetos StoreLicense que representam as licenças complementares.
private StoreContext context = null;
public async void GetLicenseInfo()
{
if (context == null)
{
context = StoreContext.GetDefault();
// If your app is a desktop app that uses the Desktop Bridge, you
// may need additional code to configure the StoreContext object.
// For more info, see https://aka.ms/storecontext-for-desktop.
}
workingProgressRing.IsActive = true;
StoreAppLicense appLicense = await context.GetAppLicenseAsync();
workingProgressRing.IsActive = false;
if (appLicense == null)
{
textBlock.Text = "An error occurred while retrieving the license.";
return;
}
// Use members of the appLicense object to access license info...
// Access the valid licenses for durable add-ons for this app.
foreach (KeyValuePair<string, StoreLicense> item in appLicense.AddOnLicenses)
{
StoreLicense addOnLicense = item.Value;
// Use members of the addOnLicense object to access license info
// for the add-on.
}
}
Para obter um aplicativo de exemplo completo, confira o Exemplo da Store.