Sledujte nás na YouTube

Vyvíjíme aplikace pro WP: Implementace trial verze (3. díl)

V dnešním díle se dozvíte jak zajistit, aby naše aplikace byla stažitelná také v trial verzi? A co musíte udělat, aby se z aplikace ve verzi trial stala verze plná, když uživatel zaplatí?


Trial alias demo

Drtivá většina Windows Phone aplikací má trial verzi, takže uživatelé nemusejí kupovat zajíce v pytli a aplikace si před placením můžou vyzkoušet. A v naprosté většině případů je slovo trial jakýmsi synonymem pro demo. Aplikace většinou nejsou omezené časem, po které je lze používat, ale obsahem, který se jim odemyká až po zaplacení. Pokud nechcete uživatelům, kteří nechtějí zaplatit, znepřístupnit ani jednu featuru vašeho programu, jistě vás napadne další možnost – po každém X-tém ťuku uživatele do aplikace zobrazit hlášku „toto je trial verze, chceš podpořit autora a aplikaci si koupit? ANO/NE“…

Tento model do aplikací implemetuji já a zatím to vypadá, že jej uživatelé přijímají lépe, než např. skrytí nějakých tlačítek. Sám si vzpomínám, jak jsem si na schůzce kreslil obrázek v jedné malovací aplikaci, a když jsem si ho chtěl po dvaceti minutách uložit, tak jsem se dozvěděl, že tato funkce není v trial verzi přístupná. Raději si ukážeme již zmíněný model „otravující hlášky“.

Implementace do existujícího projektu

1. Ve Visual Studiu si otevřete váš existující projekt (nebo vytvořte nový, prázdný).
2. V menu klikneme na Build -> Configuration Manager, rozklikneme combobox „Active solution configurations“ a klikneme na <New…>.
3. Do Name vyplníme „DebugTrial“ a v comboboxu „Copy settings from“ zvolíme Debug a potvrdíme tlačítkem OK.

4. V solution Exploreru poklikáme na složku Properties a po levé straně na záložku Build.
5. V otevřivším formuláři hned v prvním comboboxu Configuration vybereme DebugTrial

6. Do textového pole o něco níže přidáme za text „SILVERLIGHT;WINDOWS_PHONE“ řetězec „;TRIAL“ a vše uložíme skrze File > Save All.
7. V Solution Exploreru poklikáme na App.xaml.cs a nad řádek „public App()“ vložíme následující kód:

public static bool IsTrial

{

get;
private set;

}
private void DetermineIsTrail()

{

#if TRIAL

IsTrial = true; // Spuštěno v konfiguraci DebugTrial
#else

var license = new Microsoft.Phone.Marketplace.LicenseInformation();

IsTrial = license.IsTrial();
#endif

}

8. O pár řádků níže si najdeme si procedury „Application_Launching“ a „Application_Activated“ a vložíme do nich následující volání:

DetermineIsTrail();

9. V Solution Exploreru poklikáme na MainPage.xaml a v XAML kódu dáme kurzor do prvního řádku (potažmo zkrátka do toho, ve kterém je text „<phone:PhoneApplicationPage“).
10. V menu zvolíme View -> Properties Window a v nově otevřeném okně – Properties – klikneme na záložku Events a v řádc ch najdeme „Tap“, na který poklepeme. Vytvoří se procedura PhoneApplicationPage_Tap, nad kterou si vytvoříme nejprve proměnnou, a do které následně vložíme kód, který bude zjišťovat, zdali je aplikace spuštěná v trial verzi, nebo v plné placené. Kód bude vypadat takto:

private int pocetKliku = 0;

private void PhoneApplicationPage_Tap(object sender, System.Windows.Input.GestureEventArgs e)

{

pocetKliku++;

 

// Každý desátý klik

if (pocetKliku >= 9)

{

// Pokud je aplikace TRIAL, zobraz výzvu

if (App.IsTrial)

{

pocetKliku = 0;

// 1. Způsob ala Varga

// Zobraz otravující hlášku a pokud
// uživatel klikne na OK (=KOUPIT),

// zobraz detail aplikace v Marketplace,

// kde může uživatel aplikaci zakoupit…

if (MessageBox.Show(„Koupit aplikaci?“, „Trial verze!“, MessageBoxButton.OKCancel) == MessageBoxResult.OK)

{

MarketplaceDetailTask task = new MarketplaceDetailTask();

task.ContentType = MarketplaceContentType.Applications;

task.Show();

}

// 2. Způsob – skrytí tlačítka
//button1.Enabled = false;

}
// Pokud je aplikace zakoupená, nic nedělej

else

{

// Nic

}

}

}

11. Čas na oslavu, máme hotovo.

Testování aplikace

Když budete chtít testovat/debugovat aplikaci v trial verzi, stačí v comboboxu „Solution Configuration“ zvolit námi vytvořenou konfiguraci DebugTrial. Pokud budete chtít otestovat jak se bude aplikace chovat po jejím nákupu, stačí v tomto políčku zvolit klasický Debug, nebo Release.

-

Nezapomeňte

Nezapomeňte, že když budete aplikaci chtít publikovat do Marketplace, musíte ji zbuildit vždy pod konfigurací Release, protože, jak si jistě pamatujete z prvního dílu seriálu, do Marketplace odesíláte XAP vždy ze složky Release.

-

A to je vše. Kompletní info ohledně implementace trial verze si můžete přečíst opět přímo na stránkách MSDN (anglicky). I v dalších dílech seriálu se můžete těšit na řešené úlohy – například stažení a zpracování dat z internetu, vytvoření živé dlaždice apod.

O autorovi – Robert Varga

- Aktuálně pracuji v GE Money Bank na pozici IT Systems Analyst a čtvrtým rokem jsem Microsoft Influencer. Programování je více než dekádu mým „hobby na doma“ a mimo dosavadní online (VymenaVeci.cz, CzechGamer.com…) a offline (ComputeMark, RemoteServerAdmin…) světy v posledních dvou letech kotvím ve vodách Windows Phone (TV Program, Počasí, Rádio, Svátky, Program Kin, WP Bench…). Aplikace ComputeMark a WP Bench jsou používány v recenzích nejvýznamnějších webů průmyslu (Engadget.com, AnandTech.com…). Aktuálně úzce spolupracuji s Nokia ČR a SR.

Robert Varga

8 komentářů

  1. honzikovicko (neregistrovaný)

    Ahoj, vyskytl se problém po 10. kroku …

    Error : The type or namespace name ‚MarketplaceDetailTask‘ could not be found (are you missing a using directive or an assembly reference?)

    A ještě tento : The name ‚MarketplaceContentType‘ does not exist in the current context

  2. Robert Varga (neregistrovaný)

    Poklepejte na tu chybu a přesune vás to na místo v kódu, kde bude červeně podtržený text (‚MarketplaceDetailTask‘). Klikněte na něj pravým tlačítkem > Resolve > tuším že „using Tasks“…

  3. honzikovicko (neregistrovaný)

    Vyřešeno, děkuji moc

  4. Tigerish (neregistrovaný)

    Diky za radu modelu „otravujici hlasky“. Urcite bych se vydal druhou cestou, toto se opravdu jevi jako ucinejsi varianta.

  5. svarcp (neregistrovaný)

    ahoj Roberte, diky za skvele clanky, fakt jsou vyborne napsany, kazdy z tech dilcich sekci by se hrozne spatne dohledavaly po netu. To by bylo na tejden. Chci se zeptat , pokud chces aplikaci prenest na svuj telefon – v ramci testovani – tak ten musi byt „odblokovany“ pomoci app hubu – a to znamena projit tim procesem registrace a zaplaceni $99 nebo jsem neco prehlid? diky P.

  6. MartinKase (neregistrovaný)

    Nějak se mi nahoře nezobrazuje co chci debugnout jan jestly v emulátoru nebo device.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *