Lo store di Windows Phone consente di creare una versione di prova per l’applicazione, per dare la possibilità all’utente di testare le funzionalità dell’applicazione prima di acquistarla.
Per cominciare quando andrai a pubblicare l’app, nello store, è necessario indicare che è offerta una versione di prova e il relativo prezzo.
Per limitare le funzionalità nella versione di prova devi leggere lo stato della licenza dell’applicazione (trial o completa).
Innanzitutto aggiungi il namespace e istanzia le due classi come di seguito:
using Microsoft.Phone.Marketplace;
private static LicenseInformation licenseInfo = new LicenseInformation();
MarketplaceDetailTask marketPlaceDetailTask = new MarketplaceDetailTask();
all’interno di licenseInfo è salvato lo stato della licenza. E’ possibile leggerlo come variabile booleana (true/false) attraverso la funzione
bool isTrial = licenseInfo.IsTrial();
Ecco un esempio completo:
private static LicenseInformation licenseInfo = new LicenseInformation();
MarketplaceDetailTask marketPlaceDetailTask = new MarketplaceDetailTask();
bool IsTrial;
private void CheckLicense()
{
isTrial = licenseInfo.IsTrial(); //leggi lo stato della licenza
if (isTrial == true) { //se è isTrial è True allora è una versione di prova, altrimenti è stata acquistata
if( MessageBox.Show("Questa è una versione di prova. Per usare questa funzione devi acquistare l'app. Vuoi andare nello store per acquistarla?", "Versione di prova", MessageBoxButton.OKCancel)==MessageBoxResult.OK) //se premi OK vai nello store alla pagina dell'app.
{ marketPlaceDetailTask.Show(); isTrial = licenseInfo.IsTrial(); }
}
else { /*applicazione già acquistata }
}
nell’esempio se isTrial()
è uguale a True
significa che l’utente possiede la versione di prova e quindi mostra un messaggio di avviso. Inoltre se l’utente preme OK viene portato nello store, alla pagina dell’applicazione per poter acquistare subito l’app chiamando la funzione marketPlaceDetailTask.Show();
.
Viene nuovamente verificato lo stato della licenza nel caso in cui, dopo aver premuto OK, abbia acquistato l’app. A quel punto, non è necessario chiudere e riaprire l’applicazione per avere tutte le funzionalità sbloccate, queste saranno disponibili sin da subito.
Consigli:
- Chiama la funzione
licenseInfo.IsTrial();
il meno possibile perchè questa impiega una certa quantità di tempo, in quanto ogni volta verifica lo stato della licenza. - Verifica che le funzioni bloccate si sblocchino completamente prima di pubblicare l’app e che l’applicazione una volta acquistata funzioni correttamente. Ad esempio puoi provare ciò rendendo
bool isTrial
uguale aTrue
oFalse
in base al tipo di test effettuato, senza andare a leggere lo stato della licenza.
Ricorda che in fase di debug (prima di pubblicare l’app) licenseInfo.IsTrial()
restituirà sempre False
.
Più informazioni all’indirizzo: http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh286402%28v=vs.105%29.aspx