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
Posted
mié, dic 7 2011 22:27
by
Maverick