Если вы пропустили какой-либо из предыдущих постов в этой серии, вы можете ознакомиться здесь .
В 17-й части EvenTiles мы рассмотрим пробный режим . Когда приложение поддерживает пробный режим, пользователи могут сначала попробовать приложение перед его покупкой. Вы, как разработчик приложения, должны определить, какие функции доступны в приложении при работе в пробном режиме. Несмотря на то, что пробный режим делает ваше приложение несколько более сложным, преимущество внедрения пробного режима заключается в том, что вам нужно будет отправить только одну версию приложения, которую клиенты могут либо попробовать, либо купить. Приложение запускается либо с пробной, либо с полной лицензией (когда пользователь приобрел приложение). Внутри приложения вы можете использовать APIопределить, запускает ли пользователь ваше приложение в пробном режиме или нет. С технической точки зрения нет ограничений на пробный режим, так что вы даже можете предоставить полную функциональность приложения в пробном режиме. Конечно, это не имеет смысла, потому что вы, как правило, хотите использовать пробный режим, чтобы предложить конечным пользователям попробовать ваше приложение, после чего они, надеюсь, настолько увлекутся вашим приложением, что решат его купить.
ПРИМЕЧАНИЕ. Будьте внимательны, предоставляя ограниченное время для запуска полнофункционального приложения в пробном режиме, поскольку конечные пользователи могут просто переустановить ваше приложение, чтобы снова запустить приложение в течение определенного времени в пробном режиме.
Предположим, что EvenTile имеет два разных режима работы, реализованных через Trial Mode. В пробном режиме EvenTiles работает полностью без ограничений, однако приложение будет отображать рекламу на главной странице (добавление фактической рекламы в EvenTiles будет рассмотрено позже в этой серии). Как только пользователи приобретут EvenTiles, реклама будет отключена. В пробном режиме приложение также содержит функции для получения информации о местоположении для получения локализованной рекламы, хотя пользователь может отключить поиск местоположения на странице настроек приложения. Однако, если пользователь приобретает приложение, информация о местоположении не будет извлечена, и нет смысла иметь переключатель на странице настроек для включения / отключения поиска местоположения. В заключение,если пользователь запускает EvenTiles в пробном режиме, у него есть возможность приобрести приложение с О странице приложения. Конечно, эта опция доступна только в пробном режиме, если приложение уже приобретено, страница «О программе» позволяет пользователю отображать больше приложений, которые были опубликованы DotNETForDevices.
Давайте начнем с выяснения того, как мы можем определить, работает ли приложение в пробном режиме. Для этого, пока пользователь запускает приложение в пробном режиме, мы будем проверять лицензию текущего приложения каждый раз, когда приложение запускается или становится основным приложением, и соответственно устанавливаем логическое свойство. Мы также сохраняем текущее значение этого логического свойства в настройках нашего приложения. Когда пользователь приобрел приложение, нам нужно только проверить настройки приложения, что приводит к более быстрому запуску / возобновлению работы приложения. Следующий фрагмент кода показывает, как определить, работаем ли мы в пробном режиме:
Запуск в пробном режиме?
public const string keyTrialMode = "K_TRIAL"; public static bool IsTrialMode { get; private set; } private void Application_Launching(object sender, LaunchingEventArgs e) { if (!appSettings.Contains(keyTrialMode)) { appSettings[keyTrialMode] = true; } IsTrialMode = (bool)appSettings[keyTrialMode]; if (IsTrialMode) { CheckTrialMode(); } } private void CheckTrialMode() { IsTrialMode = new LicenseInformation().IsTrial(); }
Этот фрагмент показывает только проверку пробного режима при запуске приложения. Сначала мы определяем, сохранили ли мы текущий тип лицензии в настройках нашего приложения. Если мы предполагаем, что работаем в пробном режиме, нам нужно проверить, изменился ли тип лицензии с момента последнего запуска приложения пользователем. Так как правильная информация о лицензии будет добавлена только при загрузке приложения из Windows Phone Marketplace, может быть немного сложно проверить эту функцию. Когда вы устанавливаете приложение локально на разблокированном устройстве во время тестирования приложения или когда вы запускаете приложение из Visual Studio, метод LicenseInformation.IsTrial всегда возвращает false, Немного условной компиляции, мы можем легко изменить это для целей тестирования. В следующем фрагменте кода вы можете увидеть, что мы можем протестировать пробный режим, когда мы запускаем приложение в режиме отладки и когда определен символ TRIAL . Просто установив для этого символа значение NO_TRIAL, мы можем протестировать приложение для обоих типов лицензий.
Тестовый режим
#if DEBUG #define TRIAL #endif using System.Windows; using Microsoft.Phone.Marketplace; namespace EvenTiles { public partial class App : Application { private void CheckTrialMode() { #if ! TRIAL IsTrialMode = new LicenseInformation().IsTrial(); #endif }
В методе OnLaunching приложения свойство IsTrialMode инициализируется равным true и может быть изменено путем выполнения метода CheckTrialMode . Если вы хотите протестировать приложение, как если бы оно было приобретено пользователем, вы можете просто изменить TRIAL на NO_TRIAL , перекомпилировать и снова запустить приложение.
ПРИМЕЧАНИЕ. Если вы выберете такой подход, убедитесь, что вы установили чистую копию приложения на устройство или эмулятор при переключении обратно в пробный режим. Как организован код, если для свойства IsTrialMode установлено значение false, вызов метода LicenseInformation.IsTrial больше никогда не выполняется. Чтобы установить чистую копию, обязательно перестройте приложение в Visual Studio перед его развертыванием, а не просто создавайте приложение. После восстановления на целевом устройстве заменяется не только приложение, но и очищается вся область приложения IsolatedStorage.
Тестирование купленного приложения
#if DEBUG #define NO_TRIAL #endif using System.Windows; using Microsoft.Phone.Marketplace; namespace EvenTiles { public partial class App : Application { private void CheckTrialMode() { #if ! TRIAL IsTrialMode = new LicenseInformation().IsTrial(); #endif }
Так как Debug не установлен в режиме выпуска, вы всегда будете вызывать метод LicenseInformation.IsTrial при развертывании приложения на устройстве.
Поскольку теперь мы определили, работает ли приложение в пробном режиме или нет, мы можем просто использовать эту информацию, чтобы отобразить / скрыть кнопку переключения поиска местоположения на странице настроек. Также, когда можно изменить функциональность одной из кнопок на странице «О программе». Если приложение работает в пробном режиме, пользователь может приобрести приложение на странице «О программе». Если пользователь уже приобрел приложение, он может использовать ту же кнопку, чтобы проверить больше приложений от того же издателя, как показано в следующем фрагменте кода:
Изменение поведения кнопки
public partial class AboutPage : PhoneApplicationPage { public AboutPage() { InitializeComponent(); btnMore.Content = App.IsTrialMode ? "Purchase EvenTiles now" : "More from DotNETForDevices"; } private void btnMore_Click(object sender, RoutedEventArgs e) { if (App.IsTrialMode) { MarketplaceDetailTask detailTask = new MarketplaceDetailTask(); detailTask.Show(); } else { var searchTask = new MarketplaceSearchTask { ContentType = MarketplaceContentType.Applications, SearchTerms = "DotNETForDevices" }; searchTask.Show(); } } }
Когда приложение работает, оно отображает тумблер местоположения и предоставляет различные функции на странице «О программе».
В следующем видео показано, как добавить пробный режим в приложение EvenTiles. Также показано, как вы можете проверить эту функциональность, используя условную компиляцию.
Чтобы иметь возможность поэкспериментировать с функциональностью EvenTiles, как сейчас, пример кода доступен для загрузки здесь . В следующем выпуске EvenTiles мы поговорим о добавлении поддержки запуска EvenTiles на устройствах Windows Phone объемом 256 МБ .
Вы уже можете установить последнюю версию EvenTile на свой Windows Phone. с торговой площадки. Помните, что приложение не должно быть чрезвычайно полезным, хотя оно содержит аналогичные функции, которые есть у «серьезных» приложений. Просто зайдите сюда и получите здесь: http://www.windowsphone.com/en-US/search?q=EvenTiles (или поищите на своем телефоне EvenTiles в приложении Marketplace).