Подготовка версии для Viber

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск

При создании версии для Viber большая часть проекта остается идентичной основному проекту, но существуют некоторые различия. Поэтому для Viber лучше использовать отдельный синхронизированный лейаут.

В первую очередь это важно для замены используемой графики на графику, предоставленную вайбером. Для этого необходимо рассинхронизировать объект, используя параметр: синхронизация (sync) и заменить графику только в конкретном лейауте.

Версия для Viber должна быть подготовлена для двух платформ - google, ios.

Кроме отличий в самом проекте, также есть отличия при сборке проекта. Эти особенности также будут описаны ниже, но на данный момент эти отличия применяются автоматически при сборке через артефактори.

Общие настройки

Для версии на viber необходимо завести новые ключи для покупок, ачивок, лидербордов (cloud).

По требованию Вайбера нужно добавить сплеш-видео от Viber.

Теперь есть возможность после/вместо нашего обычного сплеша показывать сплеш-видео. Файл должен называться splash.ogv и лежать рядом с platform.icf. Видео может быть любого размера (оно впишется в границы экрана). Первый кадр из видео берется в качестве фона (растягивается так, чтоб закрыть "уши"), видео проигрывается поверх фона.

Для изменения логики в лейауте (например, для настройки перехода на экран с логином в Viber) можно использовать параметр, предварительно записав его в конфигурационный файл app.icf. Он запишется в опции пользователя при старте приложения. Проверяя значение этого параметра, реализуем нужную логику. На данный момент такую проверку можно делать в машине состояний, а также в таскорганайзере.

[Parameters]
param1_name="viber_social"
param1_value="1"

Основные настройки и симулятор под виндой:

[s3eViber]
appID   - ID приложения в вибере
appIdentifier  - 
# debug
#viberPostURL=""
#viberToken токен для симулятора под виндой "" берем из логов устройства "viberToken"
# release
#viberPostURL=""

Социалка Viber

Социалка в Вайбере реализована по типу фейсбука. Вся логика и проверки на логин осуществляются через параметр fb_login объекта фб.

После дозагрузки графики мы должны попасть на экран с предложением залогиниться в Вайбер, в случае, если это первая сессия или мы не были залогинены раньше. Если были залогинены - попадаем сразу на главный экран.

На экране должны быть расположены две кнопки:

1. логин в Вайбер

2. играть, как гость

По тапу на кнопку (1) передаем объекту Esocial состояние friends_not_inst, после чего, в машине-обработчике исошиала, на успех логина, переходим на главный экран.

По тапу на кнопку (2) осуществляется переход на главный экран.

Т.к. возможность залогиниться в социалку появляется до попадания на главный экран с картой, нужно расшарить на экран логина сцену с Esocial. В сцене должен быть сам объект Esocial, машина-обработчик от исошиала на успех задачи, errormanager, окно ошибок.

Объект фб должен быть расположен на глобальном экране с опциями, выше других объектов для первоочередной инициализации. Это сделано для сохранения сессии логина с предыдущих сессий: если мы были залогинены раньше, при инициализации объекту фб записывается параметр fb_login = 1.

(логин: s3eVBHTTPSession_LoggedIn() s3eViberHTTP s3eVBHTTPSession_LoggedIn -> 1, логаут: s3eVBHTTPSession_Logout() s3eViberHTTP fbSession->m_LoggedIn = false s3eVBHTTPSession_Logout -> 0).

При первом логине в Вайбер дается награда. Логин в Вайбер осуществляется: из экрана логина, из окна настроек, из окон социалки, (для Mystery_City - дополнительно из башни Вайбера на карте).

По требованию Вайбера при приглашении друзей есть ограничения: можно приглашать одного друга один раз в сутки. Поэтому добавляем функционал - удаление приглашенного друга из списка неиграющих друзей (перезаполняем таблицу на успех отправки инвайта).

Так же есть ограничения на отправку инвайтов нескольким друзьям одновременно (всегда в таблице должен быть выбран только один друг!).

При открытии вкладки с не играющими друзьями, по умолчанию, всегда должен быть выбран первый друг.

Если в таблицах друзей/подарков не выбрана ячейка - кнопки инвайта и отправки подарков должны быть забизейблены.

В Вайбере нет системных окон подтверждения отправки инвайта/подарка (любого игрового сообщения), поэтому нужно добавить уведомления об успешной отправке инвайтов/подарков.

Поля у объекта Esocial в сетсах:

"изменить состояние объекта - инвайт отослан" 
"изменить состояние объекта - гифт отослан" 

Важно!!! Во всех проектах для market="android" существует две социалки: Фейсбук, Гугл+. Для корректной работы социалки мы всегда проверяем 2 параметра: у объекта facebook fb_login=1, для объекта gamecenter gc_login_google=1. В версии Вайбера социалка всегда одна. Очень важно во всем лейауте убрать проверку на gc_login_google = 1.

Уведомления для Viber

Уведомления для Вайбера делятся на три типа: Push_Notifications, App to users, User to user.

Установка уведомлений (объект notification):

Состояние
"set", - оба способа
"set_native", - устройство
"set_parse", - парс
или через параметр
<property name="отсылать в" type="enum" value="0" id="send" hint="отсылать в" regexp="обе службы=0,только локальный пуш=1,только парс=2" /> (тогда состояние set)

App to users Уведомления типа "Вы не заходили в игру 1,3,7 дней" отправляются в чат Вайбера, как App to users. Устанавливаем состоянием "set_parse", чтобы слать только в вайбер.

Отправка этих уведомлений реализована через машину состояний. Перед вызовом состояния "set_parse" необходимо указать объекту фб параметр viber_text, viber_url:

Viber url.png

url картинки обязательно должен содержать в конце "dl=1". С окончанием "dl=0" картинка не отобразится!

User to user Это уведомления об инвайтах и отправке подарков.

Push_Notifications Уведомления типа "Вы не заходили в игру 2,6,14 дней" отправляются на устройство, как пуши (Push_Notifications). Устанавливаем состоянием "set_native".


Параметры viber_text, viber_url:

Уведомления App to users, User to user включают в себя текст, картинку и кнопку, которая ведет в игру. Текст на кнопках должен быть разный в зависимости от уведомления. Текст на кнопке берется из параметра viber_text, картинка - из viber_url.

Для уведомлений, установленных через машину состояний, эти параметры необходимо указать объекту facebook и прописать в машине, перед вызовом состояния "set_parse".

Для уведомлений об инвайтах параметр viber url указывается в объекте Esocial:

<property name="viber url"     type="strids"                id="invite_viber_url" label="viber url" hint="viber url инвайта"/>

Параметр viber text берем из sentence1 заголовка инвайта:

<property name="заголовок"     type="strid"                 id="invite_t"   label="заголовок"     hint="заголовок инвайта"/>

Для уведомлений о подарках параметр viber url указывается в объекте Esocial:

<property name="viber url"     type="strid"                  id="gift_viber_url" label="viber url" hint="viber url инвайта"/>

Параметр viber text берем из sentence1 заголовка отправки подарка:

<property name="заголовок уведомления" type="strid"          id="gift_not_t"   label="заголовок уведомления"     hint="заголовок уведомления"/>

Статистка adjust

Настройки в объекте Statistiс: Для того , чтобы событие отправилось в Adjust в объекте статистики в настройке события ставим флажочек трэкать в Adjust (он отдельно от остальных систем). Так как для разных платформ имена событий разные в настройках события есть поле "не отображать в маркетах", куда нужно поместить текстовые айди из текстовой базы содержащие название маркета(для андроида - android, для иоса - ios)

Настройки в объекте Store: для трэкинга покупок в объекте стора есть группа параметров adjust, где нужно указать: "включить adjust" - да ,а далее указывfем имена событий для покупок под андроид и иос.

Настройки в объекте Esocial: Для отправки событий Adjust в объекте исошиал нужно указать: "включить adjust" - да, далее указать названия событий для маркетов андроид и иос:

<property name="инвайт для iOS"      type="string" value="" id="adjinvite_ios" />
<property name="инвайт для Ansroid"  type="string" value="" id="adjinvite_andrd" />

Настройки app.icf:

[ADJUST]
AndroidAppToken=""
IOSAppToken=""
Environment="sandbox" - sandbox - для тестирования, production - для релиза . Главное не забыть поменять перед заливкой и не использовать production для тестирования
LogLevel="verbose" - уровень логов , где: 
// "verbose" - enable all logging
// "debug" - enable more logging
// "info" - the default
// "warn" - disable info logging
// "error" - disable warnings as well
// "assert" - disable errors as well

Реклама. Провайдер appodeal

Важно!!! Только для IOS: При сборке .ipa, для корректной работы Appodeal, необходимо добавить перечень библиотек (сейчас они добавляются автоматически, если в app.icf встречаются настройки провайдера Appodeal)

Настройки в app.icf:

[APPODEALADS]
AppKeyAndroid="" - ключ для андроида
AppKeyIOS="" - ключ для иоса
далее включаем нужную рекламу 
interstitial=1 
banner_top=1
banner_bottom=1
rewarded=1

Обязательные для рассинхронизации объекты

gamecenter - новые ключи для ачивок

store - новые ключи для покупок

statistic - отправка статистики в Adjust

errormanager - добавление ошибки - запрет пользователем инвайтов и дарения подарков

esocial - App to users, User to user

cloud - новые ключи

объекты, в которых меняется графика