Планируется в версии 8.3.8.
Мобильные операционные системы позволяют разработчикам приложений получать доход от использования своих приложений. Есть два источника такого дохода: показ рекламы в вашем приложении, и продажа (активация) отдельных функциональных возможностей вашего приложения.
В мобильной платформе мы реализовали поддержку обоих этих источников дохода. По нашему мнению вы будете использовать эту функциональность, в основном, в независимых мобильных приложениях. То есть в таких приложениях, основным назначением которых является автономное использование, а не организация удаленных рабочих мест для «десктопных» прикладных решений.
С показом рекламы всё достаточно просто. Вы показываете рекламу, и получаете деньги от рекламодателей.
Но когда вы что-то продаёте пользователю, вы получаете деньги от пользователя. И значит должны предоставить ему что-то взамен. Здесь, основными, по нашему мнению, могут являться такие сценарии:
Далее мы хотим познакомить вас с новой функциональностью более подробно.
В мобильной платформе 1С:Предприятия мы реализовали поддержку механизмов покупок, встроенных в операционные системы Android и iOS. Для Android это сервис Google Play In-App Billing. Для iOS это Apple In-App Purchase.
Мобильные операционные системы позволяют выполнять три вида покупок:
Список покупок, которые могут выполнять пользователи мобильного приложения, вы должны заранее сформировать в своей учётной записи разработчика Google или Apple. Идентификаторы этих покупок поместить в своё мобильное приложение. Например, в виде строковых констант.
После этого типичная последовательность выполнения покупки выглядит следующим образом. Сначала вам нужно получить менеджер встроенных покупок. Он обеспечивает основную работу с покупками. Он доступен из свойства глобального контекста ВстроенныеПокупки:
ВП = ВстроенныеПокупки;
Затем вам нужно понять, можно ли вообще выполнять покупки. Для этого вы можете использовать два метода:
ВП.ПокупкиПоддерживаются(); ВП.РасходованиеПокупокПоддерживается();
Почему нужны эти проверки? Например, если устройство использует операционную систему Android, то для выполнения покупок на нём обязательно должны быть установлены актуальные службы Google Play. А на устройствах с операционной системой iOS расходование покупок не используется.
После того, как вы определились с возможностью и способами покупок, можно что-нибудь купить. Перед тем, как покупать, желательно убедиться, что пользователь не приобрёл желаемую покупку на другом устройстве. В этом вам поможет специальный метод:
ВП.ОбновитьИнформациюОПриобретении();
Этот метод требует обращения к Интернету, и его выполнение может занять заметный промежуток времени. По переданным идентификаторам он запросит в сервисе-магазине информацию о покупках, в том числе об их приобретении. Сохранит (или обновит) эту информацию на устройстве в локально хранимой истории покупок. Для того чтобы в дальнейшем вы не обращались к Интернету, а пользовались локальными данными.
Теперь вы можете что-нибудь купить, или израсходовать покупку. И в том, и в другом случае вам понадобится знать актуальную информацию про конкретную покупку. Её можно узнать из списка доступных и приобретённых покупок. Для получения этого списка служит метод:
ВП.ПолучитьСписок();
Каждая покупка описывается объектом ВстроеннаяПокупка. Он содержит идентификатор, заголовок, описание, цену и валюту покупки.
Чтобы купить или израсходовать покупку, вы выполняете один из двух методов:
ВП.НачатьПриобретение(); ВП.ИзрасходоватьПокупку();
Метод НачатьПриобретение() отправляет запрос на оплату покупки. Управление передается интерфейсу проведения платежей, предоставляемому операционной системой. Например, для операционной системы Android это будет выглядеть следующим образом:
Запрос пароля:
После окончания покупки, удачного или неудачного, будет выполнен возврат в мобильное приложение.
Пользователь приобретает покупки не ради покупок, а ради того, чтобы пользоваться функциональностью и дополнительными возможностями, которых раньше у него не было. Поэтому на основе его покупок вам надо настроить мобильное приложение. Для этого функциональность, включаемая покупками, может настраиваться в вашем приложении с помощью функциональных опций.
Чтобы правильно установить значения функциональных опций, вам нужно проверить, приобретены ли те покупки, которые влияют на функциональность.
Для этого сначала полезно обновить информацию о покупках методом ОбновитьИнформациюОПриобретении(). Потому что какие-то покупки пользователь мог приобрести на другом устройстве с этим же аккаунтом. После этого нужные покупки вы можете проверить методом Приобретена().
Другой способ - это использовать метод ПолучитьСписок() со вторым параметром Истина. Чтобы он вернул только те покупки, которые ещё не приобретены.
Удобнее всего выполнять это при запуске вашего мобильного приложения.
Сервисы покупок подтверждают факт приобретения покупки тем, что возвращают в мобильное приложение квитанцию, подписанную цифровой подписью. При выполнении метода НачатьПриобретение() эта квитанция проверяется.
Но если вы обеспокоены тем, что мобильное приложение может быть взломано, и покупки могут совершаться несанкционированно, то у вас есть возможность произвести дополнительную самостоятельную проверку квитанции.
Для этого предназначен объект МенеджерПроверкиВстроенныхПокупок, который доступен только в серверном контексте «настольной» платформы 1С:Предприятие. Вы можете передать ему квитанцию, полученную в результате покупки. И он её проверит самостоятельно. Или же он предоставит вам распакованные поля квитанции, для того, чтобы вы сами проверили их.
Внутреннее устройство покупок для операционной системы iOS таково, что вы можете их тестировать на мобильной платформе разработчика, то есть в процессе разработки своего мобильного приложения.
В случае с операционной системой Android такая возможность отсутствует. Используя мобильную платформу разработчика невозможно протестировать работу встроенных покупок в Google Play In-App Billing.
Для того чтобы решить эту проблему, мы сделали специальный веб-сервис - эмулятор встроенных покупок.
Этот веб-сервис мы включим в состав Сборщика мобильных приложений. Тогда процесс тестирования для вас будет выглядеть следующим образом:
Второй механизм, который мы реализовали в мобильной платформе, поддерживает работу с агрегатором AdMob компании Google, и сервисом iAd компании Apple.
Рекламу, предоставляемую этими сервисами, вы можете показать в мобильном приложении на полный экран, или в виде небольшого баннера сверху или снизу формы.
При использовании AdMob идентификаторы рекламных блоков вам нужно будет взять из учётной записи разработчика. А в случае использования iAd сервис самостоятельно загрузит рекламу.
Типичная последовательность отображения рекламы выглядит следующим образом. Сначала вам нужно получить менеджер отображения рекламы. Он обеспечивает всю работу с рекламой. Он доступен из свойства глобального контекста ОтображениеРекламы:
ОР = ОтображениеРекламы;
Стандартно отображение рекламы отключено. Поэтому его нужно включить:
ОР.УстановитьИспользование();
Для показа полноэкранной рекламы необходимо сначала задать идентификатор рекламного блока, а затем специальным методом показать её:
ОР.УстановитьИндентификаторПолноэкраннойРекламы(); ОР.ПоказатьПолноэкраннуюРекламу();
Для показа рекламного баннера не нужен специальный метод. Рекламный баннер будет показан сразу, как выполнятся три условия:
При использовании агрегатора AdMob вы можете блокировать рекламные объявления для всего аккаунта, или только для отдельных приложений.
Функция AdMob Разрешить/блокировать позволяет управлять тем, какие объявления появляются в вашем приложении. В AdMob доступно несколько способов просмотра и блокирования объявлений.