Недавно я запустил приложение Scoreboard для iOS и Android, предназначенное для учета игровых очков. И оно стартовало очень успешно, так как люди, использующие приложение, оставляют о нем много положительных отзывов. При принятии решения о создании Scoreboard я решил использовать в нем монетизацию, основанную на рекламе, — такую структуру, когда единственное рекламное объявление размещается на главной странице приложения. И первое о чем спросили меня мои друзья после того, как установили приложение, это том, могут ли они заплатить, с тем чтобы удалить рекламное объявление. Мой ответ был: «на данный момент нет, ведь я еще не рассматривал API-интерфейс внутренних покупок в приложении». Мне надоело отвечать подобным образом, и я решил исследовать этот вопрос и занялся реализацией такой функциональности в своих приложениях. Тут я столкнулся с необычайно большим количеством сложностей, но потом Джон Дик (Redth) пришел ко мне на помощь, поскольку он буквально только что реализовал эту функцию в одном из приложений и уже сделал некую абстракцию! Абстракция, — скажете Вы!!! Мы же можем сделать для нее плагин! Спустя несколько недель работы в свободное время и после череды испытаний, я рад предоставить первую версию моего новейшего плагина для Xamarin под названием In App Billing.
Эта первая версия поддерживает покупки в приложениях iOS и Android как в случае с объектами Non-Consumption, так и Subscription. Это элементарный кросс-платформенный API, и он не может быть еще проще!
Ознакомитесь со следующим кодом, чтобы разобраться в том, как встроить возможность покупки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | try { var connected = await CrossInAppBilling.Current.ConnectAsync(); //try to purchase item var purchase = await CrossInAppBilling.Current.PurchaseAsync("mysku", ItemType.InAppPurchase, "apppayload"); if(purchase == null) { //Покупка неудачна } else { //Покупка успешна } } catch (Exception ex) { //Что-то пошло не так } finally { busy = false; await CrossInAppBilling.Current.DisconnectAsync(); } |
ЧТО!!! Это же невероятно! Необходимо только отследить, что было приобретено в приложении, и затем просто обновить его! В дополнение к возможности совершения покупки, можно также запросить информацию о предмете и восстановить прошлые покупки.
Получить NuGet можно уже сейчас, а исходный код доступен на GitHub.
По-настоящему впечатляющая документация
Я потратил нереально много времени на тестирования, приводя этот плагин в надлежащие состояние, а также документируя практически все аспекты того, через что мне пришлось пройти. Загляните на GitHub и не стесняйтесь открыть там нужную тему, если у Вас появятся вопросы.
Что дальше?
На данный момент появилось уже много запросов на версию для UWP, так что ее поддержка появится в следующем выпуске 2.0! Кроме того, я собираюсь поработать над добавлением consumption API для разработчиков, так что вы можете начать добавлять монеты во все существующие предложения, чтобы пользователи смогли их покупать.
Автор: James Montemagno
Источник: Статья в блоге автора
Написать ответ