Share via


Crear una versión de prueba de la aplicación (HTML)

[ Este artículo está destinado a desarrolladores de Windows 8.x y Windows Phone 8.x que escriben aplicaciones de Windows en tiempo de ejecución. Si estás desarrollando para Windows 10, consulta la documentación más reciente

Si los clientes pueden usar la aplicación gratis durante un período de prueba, puedes diseñar la aplicación para que excluya o limite algunas características durante ese período. También puedes habilitar características, como banners o marcas de agua, que solo se muestren durante la prueba, antes de que el cliente compre la aplicación. Veamos cómo agregar esto a tu aplicación.

Si quieres intentar trabajar con aplicaciones de prueba y otras características clave de Windows 8, descarga los laboratorios prácticos para Windows 8. En ellos, se proporciona una introducción compuesta por módulos paso a paso para crear una aplicación de la Tienda Windows de muestra en el lenguaje de programación que prefieras (JavaScript y HTML o C# y XAML).

Lo que debes saber

Tecnologías

Requisitos previos

  • Una aplicación de Windows en tiempo de ejecución para modificar

Instrucciones

Paso 1: Elige las características que deseas habilitar o deshabilitar durante el período de prueba

El estado de licencia de la aplicación se almacena como propiedades de la clase LicenseInformation. Por lo general, tendrás que incluir las funciones que dependen del estado de la licencia en un bloque condicional, según se describe en el próximo paso. Al considerar estas características, asegúrate de implementarlas de manera que funcionen en todos los estados de licencia.

Además, debes decidir cómo quieres tratar los cambios en la licencia de la aplicación cuando se está ejecutando la aplicación. La aplicación de prueba puede tener todas las características, pero puede incorporar anuncios publicitarios que la versión de pago no tiene. O bien, la aplicación de prueba puede tener determinadas características deshabilitadas o mostrar mensajes regulares que indiquen al usuario que compre la aplicación.

Piensa en el tipo de aplicación que estás haciendo y cuál sería la mejor estrategia de prueba o expiración. Para la versión de prueba de un juego, una buena estrategia es limitar la cantidad de contenido del juego que puede utilizar el usuario. Para la versión de prueba de una utilidad, podrías considerar una fecha de vencimiento o limitar las características que podría usar un posible comprador.

Para la mayoría de las aplicaciones que no sean juegos, definir una fecha de expiración funciona bien, porque los usuarios pueden familiarizarse con la aplicación completa. Estos son algunos escenarios de expiración habituales y las opciones para tratarlos.

  • La licencia de prueba expira cuando se está ejecutando la aplicación

    Si la prueba expira mientras se está ejecutando la aplicación, esta puede:

    • No hacer nada.
    • Mostrar un mensaje al cliente.
    • Cerrarse.
    • Pedir al cliente que compre la aplicación.

    El procedimiento recomendado es mostrar un mensaje pidiendo que se compre la aplicación y, si el cliente la compra, continuar con todas las características habilitadas. Si el usuario decide no comprar la aplicación, ciérrela o recuérdeles que compren la aplicación a intervalos regulares.

  • La 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, esta no se iniciará. En lugar de ello, aparecerá un cuadro de diálogo y los usuarios tendrán la posibilidad de comprar tu aplicación en la Tienda Windows.

  • El cliente compra la aplicación mientras se está ejecutando

    Si el cliente compra la aplicación mientras la está ejecutando, la aplicación puede realizar varias acciones.

    • No hacer nada y dejar que el cliente siga en el modo de prueba hasta que reinicie la aplicación.
    • Darle las gracias por la compra o mostrar un mensaje.
    • Habilitar de forma silenciosa las características que están disponibles con una licencia completa (o deshabilitar los avisos exclusivos de la prueba).

Si quieres detectar el cambio de licencia y realizar alguna acción en la aplicación, debes agregar un controlador de eventos como se describe en el siguiente paso.

Paso 2: Inicializar la información de licencia

Cuando se está inicializando la aplicación, obtén el objeto LicenseInformation para la aplicación, como se muestra en este ejemplo. Se supone que licenseInformation es una variable global o un campo de tipo LicenseInformation.

Inicializa la CurrentApp o el CurrentAppSimulator para obtener acceso a la información de licencia de la aplicación.


function initializeLicense()
{
    // (some app initialization functions)

        // Initialize the license info for use in the app that is uploaded to the Store.
        // uncomment for release
        // currentApp = Windows.ApplicationModel.Store.CurrentApp;

        // Initialize the license info for testing.
        // comment the next line for release
        currentApp = Windows.ApplicationModel.Store.CurrentAppSimulator;

        // get the license info
        licenseInformation = currentApp.licenseInformation;

    // (other app initialization functions)
}

Agrega un controlador de eventos para recibir notificaciones cuando cambie la licencia mientras se esté ejecutando la aplicación. La licencia de la aplicación puede cambiar si expira el período de prueba o si el cliente compra la aplicación a través de una Tienda, por ejemplo.


function initializeLicense()
{
    // some app initialization functions

        // Initialize the license info for use in the app that is uploaded to the Store.
        // uncomment for release
        // currentApp = Windows.ApplicationModel.Store.CurrentApp;

        // Initialize the license info for testing.
        // comment the next line for release
        currentApp = Windows.ApplicationModel.Store.CurrentAppSimulator;

        // Get the license info
        licenseInformation = currentApp.licenseInformation;

        // Register for the license state change event.
        licenseInformation.addEventListener("licensechanged", reloadLicense);

    // other app initializations function
}

function reloadLicense()
{
    // (code is in next steps)
}

Paso 3: Codificar las características en un bloque condicional

Cuando se genera el evento de cambio de licencia, la aplicación debe llamar a la API de licencia para determinar si el estado de prueba se ha modificado. En el código de este paso se muestra cómo estructurar el controlador para este evento. En este punto, si el usuario compró la aplicación, se recomienda proporcionar información al usuario sobre los cambios de estado de licencia. Es posible que necesites pedirle al usuario que reinicie la aplicación, si así la has codificado. Esta transición debe ser lo más sencilla y fácil posible.

En este ejemplo se muestra cómo evaluar el estado de licencia de una aplicación para que puedas habilitar o deshabilitar una característica de la aplicación adecuadamente.


function reloadLicense()
{
    if (licenseInformation.isActive) 
    {
        if (licenseInformation.isTrial)
        {
            // Show the features that are available during trial only.
        }
        else
        {
            // Show the features that are available only with a full license.
        }
    }
    else
    {
        // A license is inactive only when there's an error.
    }
}

Paso 4: Obtener la fecha de expiración de la prueba de una aplicación (solo Windows)

Incluye el código para determinar la fecha de vencimiento de la prueba de la aplicación.

El código de este ejemplo define una función para obtener la fecha de expiración de la licencia de prueba de la aplicación. Si la licencia sigue siendo válida, muestra la fecha de expiración con el número de días que quedan para que expire la prueba.

function displayTrialVersionExpirationTime()
{
    if (licenseInformation.isActive)
    {
        if (licenseInformation.isTrial)
        {
            var longDateFormat = Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longdate");

            // Display the expiration date using the DateTimeFormatter. 
            // For example, longDateFormat.format(licenseInformation.expirationDate) 

            var daysRemaining = (licenseInformation.expirationDate - new Date()) / 86400000;

            // Let the user know the number of days remaining before the feature expires.
        }
        else
        {
            // ...
        }
    }
    else
    {
       // ...
    }
}

Paso 5: Probar las características con llamadas simuladas a la API de licencia

Ahora, prueba la aplicación con llamadas simuladas al servidor de licencias. En JavaScript, C#, Visual Basic o Visual C++, reemplaza las referencias de CurrentApp por CurrentAppSimulator en el código de inicialización de la aplicación.

CurrentAppSimulator obtiene información de licencia específica de las pruebas desde un archivo XML llamado “WindowsStoreProxy.xml”, que se encuentra en %userprofile%\AppData\local\packages\<package name>\LocalState\Microsoft\Windows Store\ApiData. Si esta ruta y este archivo no existen, deberás crearlos, durante la instalación o durante el tiempo de ejecución. Si intentas acceder a la propiedad CurrentAppSimulator.LicenseInformation sin el archivo WindowsStoreProxy.xml en esa ubicación específica, obtendrás un mensaje de error.

En este ejemplo se muestra cómo agregar el código a la aplicación para probarla en diferentes estados de licencia.

function appInit
{
    // some app initialization functions

        // Initialize the license info for use in the app that is uploaded to the Store.
        // uncomment for release
        // currentApp = Windows.ApplicationModel.Store.CurrentApp;

        // Initialize the license info for testing.
        // comment the next line for release
        currentApp = Windows.ApplicationModel.Store.CurrentAppSimulator;

        // Get the license info
        licenseInformation = currentApp.licenseInformation;

    // other app initialization functions
}

Puedes editar WindowsStoreProxy.xml para cambiar las fechas de expiración simuladas para la aplicación y para sus características. Prueba todas las configuraciones de licencia y expiración posibles para asegurarte de que todo funcione correctamente.

Paso 6: Reemplaza los métodos API de licencia simulados con los API reales.

Después de probar tu aplicación con el servidor de licencias simulado y antes de enviar la aplicación a una Tienda para su certificación, reemplaza CurrentAppSimulator por CurrentApp, como se muestra en la siguiente muestra de código.

Importante  La aplicación debe usar el objeto CurrentApp cuando la envíes a una Tienda o no logrará la certificación.

 

function appInit
{
    // (some app initialization functions)

        // Initialize the license info for use in the app that is uploaded to the Store.
        // uncomment for release
        currentApp = Windows.ApplicationModel.Store.CurrentApp;

        // Initialize the license info for testing.
        // comment the next line for release
        //   currentApp = Windows.ApplicationModel.Store.CurrentAppSimulator;

        // Get the license info
        licenseInformation = currentApp.licenseInformation;

    // (other app initialization functions)
}

Paso 7: Describir cómo funciona la prueba gratuita a tus clientes

Explica cómo se comportará la aplicación durante el período de prueba gratuito y después de él, para que no les sorprenda el comportamiento de la aplicación.

Para obtener más información sobre cómo describir tu aplicación, consulta Descripción de la aplicación.

Temas relacionados

Aplicación de prueba y muestra de compra desde la aplicación

CurrentApp

CurrentAppSimulator