Compartilhar via


Implementar uma versão de avaliação do seu aplicativo

Se você configurar seu aplicativo como uma avaliação gratuita no Partner Center para que os clientes possam usar seu aplicativo gratuitamente durante um período de avaliação, você poderá atrair seus clientes para atualizar para a versão completa do seu aplicativo excluindo ou limitando alguns recursos durante o período de avaliação. Determine quais recursos devem ser limitados antes de começar a codificar e verifique se seu aplicativo só permite que eles funcionem quando uma licença completa foi comprada. Você também pode habilitar recursos, como banners ou marcas d'água, que são mostrados somente durante o período de avaliação, antes que um cliente compre seu aplicativo.

Este artigo mostra como usar membros da classe StoreContext no namespace Windows.Services.Store para determinar se o usuário tem uma licença de avaliação para seu aplicativo e ser notificado se o estado da licença muda enquanto seu aplicativo está em execução.

Observação

O namespace Windows.Services.Store foi introduzido no Windows 10, versão 1607, e só pode ser usado em projetos que tenham como alvo o 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.

Diretrizes para implementar uma versão de avaliação

O estado atual da licença do seu aplicativo é armazenado como propriedades da classe StoreAppLicense. Normalmente, você coloca as funções que dependem do estado de licença em um bloco condicional, como descrevemos na próxima etapa. Ao considerar esses recursos, certifique-se de implementá-los de uma maneira que funcione em todos os estados de licença.

Além disso, decida como deseja lidar com as alterações na licença do aplicativo enquanto o aplicativo está em execução. Seu aplicativo de avaliação pode ser completo em recursos, mas exibe banners de anúncios no aplicativo, enquanto a versão paga não os possui. Ou, seu aplicativo de avaliação pode desabilitar determinados recursos ou exibir mensagens regulares pedindo ao usuário para comprá-lo.

Pense no tipo de aplicativo que você está desenvolvendo e qual é uma boa estratégia de teste ou prazo de expiração para ele. Para uma versão de avaliação de um jogo, uma boa estratégia é limitar a quantidade de conteúdo de jogo que um usuário pode jogar. Para uma versão de avaliação de um utilitário, você pode considerar definir uma data de validade ou limitar os recursos que um potencial comprador pode usar.

Para a maioria dos aplicativos que não são de jogos, a definição de uma data de validade funciona bem, pois os usuários podem desenvolver uma boa compreensão do aplicativo completo. Aqui estão alguns cenários comuns de expiração e suas opções para lidar com eles.

  • licença de avaliação expira enquanto o aplicativo está em execução

    Se a versão de avaliação expirar enquanto o aplicativo estiver em execução, o aplicativo poderá:

    • Não faça nada.
    • Exiba uma mensagem para o cliente.
    • Fechar.
    • Solicite que o cliente compre o aplicativo.

    A melhor prática é exibir uma mensagem com um prompt para comprar o aplicativo e, se o cliente comprar, continuar com todos os recursos habilitados. Se o usuário decidir não comprar o aplicativo, feche-o ou lembre-o de comprar o aplicativo em intervalos regulares.

  • licença de avaliação expira antes do aplicativo ser iniciado

    Se a avaliação expirar antes do usuário iniciar o aplicativo, seu aplicativo não será iniciado. Em vez disso, os usuários veem uma caixa de diálogo que lhes dá a opção de comprar seu aplicativo na Loja.

  • Cliente compra o aplicativo enquanto ele está em execução

    Se o cliente comprar seu aplicativo enquanto ele estiver em execução, aqui estão algumas ações que seu aplicativo pode executar.

    • Não faça nada e deixe que eles continuem no modo de avaliação até reiniciarem o aplicativo.
    • Agradeça-os por comprarem ou exiba uma mensagem.
    • Habilite silenciosamente os recursos que estão disponíveis com uma licença completa (ou desabilite os avisos de teste).

Certifique-se de explicar como seu aplicativo se comportará durante e após o período de avaliação gratuito para que seus clientes não se surpreendam com o comportamento do aplicativo. Para obter mais informações sobre como descrever seu aplicativo, consulte Criar descrições de aplicativo.

Pré-requisitos

Este exemplo tem os seguintes pré-requisitos:

  • Um projeto do Visual Studio para um aplicativo UWP (Plataforma Universal do Windows) destinado ao Windows 10 Anniversary Edition (10.0; Build 14393) ou a uma versão posterior.
  • Você criou um aplicativo no Partner Center configurado como uma avaliação gratuita sem limite de tempo e este aplicativo é publicado na loja. Opcionalmente, você pode configurar o aplicativo para que ele não seja detectável na Loja enquanto você o testa. Para mais informações, consulte as diretrizes de teste .

O código neste exemplo pressupõe:

  • O código é executado no contexto de uma página que contém um ProgressRing chamado workingProgressRing e um TextBlock chamado textBlock. 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 contém uma instrução usando para o namespace Windows.Services.Store.
  • O aplicativo é um aplicativo de usuário único que é executado somente no contexto do usuário que iniciou o aplicativo. Para obter mais informações, consulte compras e avaliações no aplicativo.

Observação

Se você tiver um aplicativo da área de trabalho que usa o Desktop Bridge, talvez seja necessário adicionar um código adicional não mostrado neste exemplo para configurar o objeto StoreContext. Para obter mais informações, consulte Usando a classe StoreContext em um aplicativo de desktop que utiliza o Desktop Bridge.

Exemplo de código

Quando o aplicativo estiver inicializando, obtenha o objeto StoreAppLicense para seu aplicativo e manipule o evento OfflineLicensesChanged para receber notificações quando a licença for alterada enquanto o aplicativo estiver em execução. Por exemplo, a licença do aplicativo poderá ser alterada se o período de avaliação expirar ou o cliente comprar o aplicativo por meio de uma Loja. Quando a licença for alterada, obtenha a nova licença e habilite ou desabilite um recurso do seu aplicativo adequadamente.

Neste ponto, se um usuário comprou o aplicativo, é uma boa prática fornecer comentários ao usuário de que o status de licenciamento foi alterado. Talvez seja necessário pedir ao usuário para reiniciar o aplicativo se for assim que você o codiou. Mas faça essa transição o mais perfeita e indolor possível.

private StoreContext context = null;
private StoreAppLicense appLicense = null;

// Call this while your app is initializing.
private async void InitializeLicense()
{
    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;
    appLicense = await context.GetAppLicenseAsync();
    workingProgressRing.IsActive = false;

    // Register for the licenced changed event.
    context.OfflineLicensesChanged += context_OfflineLicensesChanged;
}

private async void context_OfflineLicensesChanged(StoreContext sender, object args)
{
    // Reload the license.
    workingProgressRing.IsActive = true;
    appLicense = await context.GetAppLicenseAsync();
    workingProgressRing.IsActive = false;

    if (appLicense.IsActive)
    {
        if (appLicense.IsTrial)
        {
            textBlock.Text = $"This is the trial version. Expiration date: {appLicense.ExpirationDate}";

            // Show the features that are available during trial only.
        }
        else
        {
            // Show the features that are available only with a full license.
        }
    }
}

Para obter um aplicativo de exemplo completo, consulte o exemploda Store.