Creación de aplicaciones trial

Una de la mejores características en el desarrollo de Windows Phone es la facilidad para generar versiones trial de nuestras aplicaciones, pudiendo activar la aplicación completa sin tener que mantener 2 versiones de la misma y por ende, tener diferentes proyectos de una aplicación.

Para ello Microsoft.Phone.Marketplace nos provee de la clase LicenseInformation, la cual nos expone la propiedad IsTrial, la cual devolviendo un valor booleano, podemos saber si la aplicación funciona en modo en modo “demo” o completo.

Un pequeño ejemplo, crearemos una aplicación :

Imports Microsoft.Phone.Marketplace

Partial Public Class MainPage
    Inherits PhoneApplicationPage

    ' Constructor
    Public Sub New()
        InitializeComponent()

        Dim InfoLicencia As New LicenseInformation

        If InfoLicencia.IsTrial Then
            MessageBox.Show("Ejecutando la aplicación en modo DEMO")
        Else
            MessageBox.Show("Ejecutando la aplicación en modo COMPLETO")
        End If
    End Sub
End Class

Nota: Este ejemplo de concepto no es funcional en el emulador, ya que la propiedad IsTrial siempre devuelve False, ya que para que realmente funcione la aplicación debe estar firmado por el marketplace.

Esto esta bien para una aplicación de ejemplo, pero si queremos hacer una buena implementación deberemos hacer que, por lo menos para pruebas, nos pregunte si queremos entrar en modo demo o completo. Para ello vamos a aprovechar el evento Launching y Activated del fichero App.xaml.vb para comprobar en que modo queremos iniciar la aplicación.

    ' Código para ejecutar cuando la aplicación se inicia (p.ej. a partir de Inicio)
    ' Este código no se ejecutará cuando la aplicación se reactive
    Private Sub Application_Launching(ByVal sender As Object, ByVal e As LaunchingEventArgs)
        Comprobar_ModoInicio()
    End Sub

    ' Código para ejecutar cuando la aplicación se activa (se trae a primer plano)
    ' Este código no se ejecutará cuando la aplicación se inicie por primera vez
    Private Sub Application_Activated(ByVal sender As Object, ByVal e As ActivatedEventArgs)
        Comprobar_ModoInicio()
    End Sub

En la rutina de Comprobar_ModoInicio vamos a preguntar por el modo de inicio de nuestra aplicación y vamos a guardarlo en una variable para futuras consultas, esto también vamos a colocarlo en el fichero App.xaml.vb.

    Public _EsDemo As Boolean

    Sub Comprobar_ModoInicio()
        Dim InfoLicencia As New LicenseInformation

#If DEBUG Then
        ' En modo de depuración, preguntamos como deseamos arrancar la aplicación

        ' Si pulsa sobre el botón de Ok entramos en modo demo y sino en modo completo
        If MessageBox.Show("Pulse Aceptar para entrar en modo DEMO o Cancelar para entrar en modo COMPLETO",
                           "Modo Inicio", MessageBoxButton.OKCancel) = MessageBoxResult.OK Then
            _EsDemo = True
        Else
            _EsDemo = False
        End If
#Else
        ' Si no estamos en depuración obtenemos el valor del certificado de la aplicación
        _EsDemo = InfoLicencia.IsTrial
#End If
    End Sub

 

Ahora ya podemos desde cualquier punto de nuestra aplicación comprobar el modo de inicio y limitar por tiempo, número de arranques o cualquier otro método que queramos implementar.

Quedando nuestro primer ejemplo de la siguiente manera.

Partial Public Class MainPage
    Inherits PhoneApplicationPage

    ' Constructor
    Public Sub New()
        InitializeComponent()

        If TryCast(Application.Current, App)._EsDemo Then
            MessageBox.Show("Ejecutando la aplicación en modo DEMO")
        Else
            MessageBox.Show("Ejecutando la aplicación en modo COMPLETO")
        End If
    End Sub
End Class

Con este pequeño ejemplo podemos utilizar el emulador para probar como se comporta nuestra aplicación de un modo u otro.

Podéis descargar el proyecto de ejemplo desde http://descarga.e-mision.net/test_trial.zip

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s