Создание Trial версии для вашего приложения на Windows Phone для самых начинающих
Invite pending
Вместо вступления
Публикуя свое платное приложение в Marketplace я сначала совсем забыл о том что нужно предоставить пользователю какой то базовый функционал программы бесплатно — чтобы он захотел купить полную версию, но так как я довольно недавно увлекся разработкой под windows phone у меня возникли некоторые трудности.
В этой небольшой статье хочу поделиться возникшими проблемами и методами их решения.
Ошибка номер раз!
Я наивно полагал что придется изобретать велосипед и переписывать пол-программы (или даже писать вторую копию программы с урезанным функционалом и заливать в app hub два .xap файла), но в Microsoft уже позаботились об этом (msdn иногда и правда полезно почитать).
Итак нужно добавить сборку для использования LicenseInformation в нашу программу
using Microsoft.Phone.Marketplace;
LicenseInformation li = new LicenseInformation();
Вся легкость заключается в том что в классе LicenseInformation есть свойство IsTrial() которое проверяет триальное приложение или нет.
Казалось бы можно использовать простой код и задача решена:
if (!li.IsTrial())
{
// что то для тех кто приобрел полную версию программы
}
else
{
//код для триальной версии
}
Ошибка номер два!
Если использовать данный метод слишком часто — приложение начинает неимоверно тормозить. Поэтому не стоит злоупотреблять — можно просто один раз при запуске приложения проверять состояние лицензии и это сэкономит ресурсы пользователя и приложение не будет притормаживать (не забывайте что при сертификации приложений в marketplace выполняется проверка на время запуска приложения и если ваша программа не укладывается в 5 секунд — сертификацию вы не пройдете).
Ошибка номер три. Последний выдох.
В эмуляторе IsTrial() всегда будет ложью (т.е. false). Я об этом не знал и пока не погуглил как следует — не мог понять что я делаю не так.
Прописываем простейшее условие и проблема решена:
bool debugTrial = false;
Главное при сборке приложения для публикации в Marketplace удалите эту строчку, т.к. это костыль исключительно для эмулятора.
Вместо заключения
В этой статье я собрал три единственно важные и в той же степени легкие проблемы которые у меня возникли. Думаю начинающим будет полезно — мне очень не хватало подобной статьи.
В следующей статье хочу рассказать про подводные камни при сертификации приложения в Marketplace.