Se o aplicativo que você está desenvolvendo será cobrado, mesmo que o preço mínimo da loja, disponibilize uma versão de avaliação para o usuário. A maioria das pessoas não irá comprar seu aplicativo sem antes experimentá-lo.
Planeje quais funcionalidades do seu aplicativo estarão disponíveis na versão Trial, não use a tática de liberar acesso a tudo por um período de data, isto não é confiável, o melhor é colocar restrições no uso do aplicativo, como por exemplo permitir somente a entrada de X itens numa lista, etc.
Para verificar se um aplicativo está na versão de avaliação ou não, utilizamos o objeto LicenseInformation, este objeto só funciona após o seu app estar publicado no Marketplace, então, para testar, teremos que simular o resultado deste objeto.
O primeiro passo é abrir o arquivo App.xaml.cs, e nele adicionar a referência para a biblioteca Microsoft.Phone.Marketplace, criar o objeto LicenseInformation e a propriedade (readonly, só tem o get, nada de set) isTrial:
using Microsoft.Phone.Marketplace;
private static LicenseInformation _licenseInfo = new LicenseInformation();
private static bool _isTrial = true;
public bool IsTrial
{
get
{
return _isTrial;
}
}
O teste para saber se a aplicação está no modo de avaliação, ou não, deve ser executada em dois momentos: Quando a aplicação é executada e quando a aplicação sai da inatividade, portanto temos que fazer a verificação nos event handlers Application_Launching (quando é executada) e Application_Activated (quando volta de inatividade). Para isto criamos um método, no arquivo App.xaml.cs, para fazer esta verificação:
private void CheckLicense()
{
// Ao debugar, vamos simular que a aplicação esteja no modo trial
// O teste condicional a seguir permite setarmos a variável manualmente
#if DEBUG
string message = "Pressione 'OK' para simular o modo de avaliação. Pressione 'Cancel' para roda a aplicação no modo completo.";
if (MessageBox.Show(message, "Debug Trial",
MessageBoxButton.OKCancel) == MessageBoxResult.OK)
{
_isTrial = true;
}
else
{
_isTrial = false;
}
#else
_isTrial = _licenseInfo.IsTrial();
#endif
}
Neste método que acabamos de criar, a propriedade _isTrial recebe o valor de acordo com a licença do usuário. Então agora chamamos este método dentro dos event handlers mencionados anteriormente, eles também ficam no arquivo App.xaml.cs:
private void Application_Launching(object sender, LaunchingEventArgs e)
{
CheckLicense();
}
private void Application_Activated(object sender, ActivatedEventArgs e)
{
CheckLicense();
}
Agora está tudo pronto para que restrições sejam feitas no seu app baseado na licença utilizada pelo seu usuário. Para isto basta verificar a propriedade isTrial em todo lugar onde existir uma restrição:
if ((Application.Current as App).IsTrial)
{
...
}
else
{
...
}
Mais informações sobre Trial apps
Nenhum comentário:
Postar um comentário