Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Si configuras la aplicación como una prueba gratuita en el Centro de Partners para que los clientes puedan usar la aplicación de forma gratuita durante un período de prueba, puedes animar a los clientes a actualizar a la versión completa de la aplicación excluyendo o limitando algunas funcionalidades durante el período de prueba. Determine qué características deben limitarse antes de empezar a codificar y asegúrese de que la aplicación solo les permite trabajar cuando se haya adquirido una licencia completa. También puedes habilitar características, como banners o marcas de agua, que solo se muestran durante la prueba, antes de que un cliente compre la aplicación.
En este artículo se muestra cómo usar miembros de la clase StoreContext en el espacio de nombres Windows.Services.Store para determinar si el usuario tiene una licencia de prueba para la aplicación y recibir una notificación si el estado de la licencia cambia mientras se ejecuta la aplicación.
Nota
El espacio de nombres Windows.Services.Store se introdujo en Windows 10, versión 1607, y solo se puede usar en proyectos que tienen como destino Windows 10 Anniversary Edition (10.0; Compilación 14393) o una versión posterior en Visual Studio. Si la aplicación tiene como destino una versión anterior de Windows 10, debes usar el espacio de nombres Windows.ApplicationModel.Store en lugar del espacio de nombres Windows.Services.Store. Para obtener más información, consulte este artículo.
Directrices para implementar una versión de prueba
El estado de licencia actual de la aplicación se almacena como propiedades de la clase StoreAppLicense. Normalmente, se colocan las funciones que dependen del estado de licencia en un bloque condicional, como se describe en el paso siguiente. Al considerar estas características, asegúrese de que puede implementarlas de forma que funcione en todos los estados de licencia.
Además, decida cómo desea controlar los cambios en la licencia de la aplicación mientras se ejecuta la aplicación. La aplicación de prueba puede ser completa en funciones, pero muestra banners de anuncios dentro de la aplicación, mientras que la versión de pago no lo hace. O bien, la aplicación de prueba puede deshabilitar determinadas características o mostrar mensajes normales que le pidan al usuario que lo compre.
Piense en el tipo de aplicación que está realizando y en qué consiste una buena estrategia de prueba o expiración. Para una versión de prueba de un juego, una buena estrategia es limitar la cantidad de contenido del juego que un usuario puede jugar. Para una versión de prueba de una utilidad, puede considerar la posibilidad de establecer una fecha de expiración o limitar las características que un posible comprador puede usar.
Para la mayoría de las aplicaciones que no son de juegos, establecer una fecha de expiración funciona bien, ya que los usuarios pueden desarrollar una buena comprensión de la aplicación completa. Estos son algunos escenarios de expiración comunes y sus opciones para controlarlos.
licencia de prueba expira mientras la aplicación se ejecuta
Si la versión de prueba expira mientras se ejecuta la aplicación, la aplicación puede hacer lo siguiente:
- No haga nada.
- Muestra un mensaje al cliente.
- Cerrar.
- Pida al cliente que compre la aplicación.
El procedimiento recomendado es mostrar un mensaje con un mensaje para comprar la aplicación y, si el cliente lo compra, continúe con todas las características habilitadas. Si el usuario decide no comprar la aplicación, ciérrala o recuérdala para comprarla a intervalos regulares.
licencia de prueba expira antes de que se inicie la aplicación
Si la prueba expira antes de que el usuario inicie la aplicación, la aplicación no se iniciará. En su lugar, los usuarios ven un cuadro de diálogo que les da la opción de comprar la aplicación desde la Tienda.
El cliente compra la aplicación mientras se está ejecutando
Si el cliente compra la aplicación mientras se ejecuta, estas son algunas acciones que puede realizar la aplicación.
- No haga nada y deje que continúen en modo de prueba hasta que reinicien la aplicación.
- Agradézcales por la compra o muestre un mensaje.
- Habilite silenciosamente las características disponibles con una licencia completa (o deshabilite los avisos de solo prueba).
Asegúrate de explicar cómo se comportará tu aplicación durante y después del período de evaluación gratuita para que los clientes no se sorprenda por el comportamiento de la aplicación. Para obtener más información sobre cómo describir la aplicación, consulta Crear descripciones de la aplicación.
Prerrequisitos
Este ejemplo tiene los siguientes requisitos previos:
- Un proyecto de Visual Studio para una aplicación para la Plataforma universal de Windows (UWP) que tiene como destino Windows 10 Anniversary Edition (10.0; Compilación 14393) o una versión posterior.
- Ha creado una aplicación en el Centro de partners que está configurada como una prueba gratuita sin límite de tiempo y esta aplicación se publica en la Tienda. Opcionalmente, puedes configurar la aplicación para que no se pueda detectar en la Tienda mientras la pruebas. Para obtener más información, consulte nuestra guía de pruebas de .
En el código de este ejemplo se da por supuesto:
- El código se ejecuta en el contexto de una Página que contiene un objeto ProgressRing denominado
workingProgressRing
y un objeto TextBlock denominadotextBlock
. Estos objetos se usan para indicar que se está produciendo una operación asincrónica y mostrar mensajes de salida, respectivamente. - El archivo de código tiene una instrucción using para el espacio de nombres Windows.Services.Store.
- La aplicación es una aplicación de usuario único que solo se ejecuta en el contexto del usuario que inició la aplicación. Para obtener más información, consulte Pruebas y compras desde la aplicación.
Nota
Si tienes una aplicación de escritorio que usa el Puente de escritorio, es posible que tengas que agregar código adicional que no se muestra en este ejemplo para configurar el objeto StoreContext. Para obtener más información, consulta Uso de la clase StoreContext en una aplicación de escritorio que utiliza el Puente de Escritorio.
Ejemplo de código
Cuando su aplicación se inicialice, obtenga el objeto StoreAppLicense para su aplicación y controle el evento OfflineLicensesChanged para recibir notificaciones cuando la licencia cambie mientras la aplicación se está ejecutando. Por ejemplo, la licencia de la aplicación podría cambiar si expira el período de prueba o el cliente compra la aplicación a través de una Tienda. Cuando cambie la licencia, obtenga la nueva licencia y habilite o deshabilite una característica de la aplicación en consecuencia.
En este momento, si un usuario compró la aplicación, es recomendable proporcionar comentarios al usuario que el estado de licencia ha cambiado. Es posible que deba pedir al usuario que reinicie la aplicación si así es como la ha codificado. Pero haga que esta transición sea lo más fluida y indoloro posible.
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 obtener una aplicación de ejemplo completa, consulte el ejemplo de Store.
Temas relacionados
- compras y pruebas desde la aplicación
- Obtener información del producto para aplicaciones y complementos
- Obtener información de licencia para aplicaciones y complementos
- Habilitación de compras desde la aplicación para aplicaciones y complementos
- Habilitar compras de complementos consumibles
- Ejemplo de Store