Unity
Скачать плагин
Скачать пример
Документация по плагину
Шаги по интеграции
Section titled “Шаги по интеграции”Чтобы интегрировать Wavesend в ваше приложение Unity, выполните следующие шаги:
- Скачайте
google-services.jsonиз вашей консоли Firebase, как описано здесь, и поместите его в папку Assets вашего проекта. Имя пакета вашего приложения должно быть добавлено в ваш проект Firebase и сохранено в файлеgoogle-services.json. - Импортируйте плагин push-уведомлений для Unity в папку Assets в Unity.
Интеграция с Android
Section titled “Интеграция с Android”Обновите AndroidManifest.xml
Section titled “Обновите AndroidManifest.xml”Объедините содержимое **Assets/Plugins/Android/WavesendAndroidManifest.xml** с **Assets/Plugins/Android/AndroidManifest.xml**. Если у вас еще нет Android Manifest, переименуйте WavesendAndroidManifest.xml в AndroidManifest.xml.
Замените PACKAGE_NAME на пакет вашего проекта. Обратите внимание, что в Unity он называется ‘Bundle Identifier’.
Регистрация для push-уведомлений
Section titled “Регистрация для push-уведомлений”Создайте скрипт PushNotificator.cs и прикрепите его к объекту Camera Object на сцене.
using UnityEngine;using System.Collections;
public class PushNotificator : MonoBehaviour { // use for initialization void Start () { Wavesend.ApplicationCode = "ENTER_WAVESEND_APP_ID_HERE"; Wavesend.FcmProjectNumber = "ENTER_FCM_SENDER_ID_HERE"; Wavesend.Instance.OnRegisteredForPushNotifications += OnRegisteredForPushNotifications; Wavesend.Instance.OnFailedToRegisteredForPushNotifications += OnFailedToRegisteredForPushNotifications; Wavesend.Instance.OnPushNotificationsReceived += OnPushNotificationsReceived; Wavesend.Instance.RegisterForPushNotifications (); }
void OnRegisteredForPushNotifications(string token) { // handle here Debug.Log("Received token: \n" + token); }
void OnFailedToRegisteredForPushNotifications(string error) { // handle here Debug.Log("Error ocurred while registering to push notifications: \n" + error); }
void OnPushNotificationsReceived(string payload) { // handle here Debug.Log("Received push notificaiton: \n" + payload); }}Настройка Device API token
Section titled “Настройка Device API token”В AndroidManifest.xml добавьте следующее:
<meta-data android:name="com.pushwoosh.apitoken" android:value="YOUR_DEVICE_API_TOKEN" />Узнайте больше о вашем Wavesend Device API Token
Важно: Убедитесь, что токену предоставлен доступ к нужному приложению в вашей Wavesend Control Panel. Узнать больше
Интеграция с iOS
Section titled “Интеграция с iOS”Скрытие оповещений
Section titled “Скрытие оповещений”Чтобы скрыть оповещения, когда приложение находится на переднем плане, просто установите для Wavesend_SHOW_ALERT значение NO в вашем файле Info.plist.
Настройка Device API token
Section titled “Настройка Device API token”В вашем Info.plist установите для ключа PW_API_TOKEN значение Wavesend Device API Token.
Важно: Убедитесь, что токену предоставлен доступ к нужному приложению в вашей Wavesend Control Panel. Узнать больше
Включение push-уведомлений в Xcode
Section titled “Включение push-уведомлений в Xcode”Для регистрации push-уведомлений Xcode требует, чтобы в разделе Capabilities были включены Push Notifications. Для этого перейдите в Capabilities → Enable Push Notifications.

Включите Remote notifications для Background Modes в разделе Capabilities.

Дополнительные настройки для Android
Section titled “Дополнительные настройки для Android”Чтобы получать push-уведомления на Android, когда приложение активно, не отправляя уведомление в центр уведомлений, установите для следующей строки в AndroidManifest.xml значение true:
<meta-data android:name="PW_BROADCAST_PUSH" android:value="false" />Интеграция с Amazon
Section titled “Интеграция с Amazon”Получение API-ключа от Amazon
Section titled “Получение API-ключа от Amazon”Получите API-ключ (API KEY) от Amazon в соответствии с руководством Amazon.
Для предварительной или «отладочной» (debug) версии вашего приложения вы должны создать API-ключ и сохранить его как единственные данные в файле с именем api_key.txt. Файл api_key.txt должен находиться в папке Assets вашего проекта.
Для релизной или «производственной» (production) версии вашего приложения вам может не понадобиться создавать API-ключ. Только если вы подписываете релизную версию вашего приложения собственным сертификатом, вы должны создать дополнительный API-ключ для релизной версии вашего приложения. В противном случае, если вы разрешаете Amazon подписывать ваше приложение от вашего имени, вам не нужно создавать дополнительный API-ключ.
Интеграция с Windows Store
Section titled “Интеграция с Windows Store”- Добавьте файл
link.xmlв ваш каталог Assets/ со следующим содержимым:
<linker> <assembly fullname="PushSDK" preserve="all"/></linker>- Вам также необходимо связать приложение с магазином (Associate App with the Store) в экспортированном проекте Visual Studio. Убедитесь, что ваше приложение подписано сертификатом, соответствующим вашему Publisher Identity.

Включите опцию Internet (Client) на вкладке Capabilities вашего файла .appxmanifest в экспортированном проекте Visual Studio.
Проблемы с проектами Unity с установленным плагином Wavesend
Section titled “Проблемы с проектами Unity с установленным плагином Wavesend”Если вы столкнулись с ошибкой, подобной той, что показана на изображении ниже, это может быть вызвано проблемой фреймворка Unity с проектами, использующими сторонние плагины.

В заметке о решении этой проблемы от Unity говорится:
В определенный момент времени среда выполнения UnityFramework вместе с плагинами загружается во время выполнения с помощью dyld/NSBundle.load. Пожалуйста, учитывайте это при разработке плагина.
Любая инициализация, богатая вызовами API, в путях кода +(load), attribute(constructor) и конструкциях глобальных объектов должна быть перенесена на более поздний этап, предпочтительно после загрузки UnityFramework, и еще лучше — после инициализации Unity.
Простая инициализация обычных данных безопасна, но вызовы, богатые API, которые взаимодействуют с другими частями ОС, особенно с API для работы с сетью и пользовательским интерфейсом, могут привести к взаимоблокировке, что приведет к завершению работы по тайм-ауту (watchdog termination).
Используя отложенную/ленивую инициализацию, вы получаете лучший контроль над порядком инициализации, можете сократить время загрузки приложения и, что самое важное, избежать возможной взаимоблокировки.
Возможное решение
Section titled “Возможное решение”По умолчанию UnityFramework.framework встроен в таргет Unity-iPhone, но не связан с ним. В результате UnityFramework загружается позже во время выполнения, и некоторые плагины могут быть чувствительны к такому пути инициализации.
Чтобы решить эту проблему, перейдите в Unity-iPhone → Build Phases → Link Binary with Libraries и добавьте **UnityFramework.framework**.
Это гарантирует, что UnityFramework будет загружаться одновременно с основным исполняемым файлом.
Поделитесь с нами своим мнением
Section titled “Поделитесь с нами своим мнением”Ваши отзывы помогают нам делать наш продукт лучше, поэтому мы будем рады, если вы расскажете о любых проблемах, возникших в процессе интеграции SDK. Если вы столкнетесь с какими-либо трудностями, пожалуйста, не стесняйтесь поделиться с нами своими мыслями через эту форму.