Unity
Скачать плагин
Скачать пример
Документация по плагину
Шаги по интеграции
Anchor link toЧтобы интегрировать Pushwoosh в ваше приложение Unity, выполните следующие шаги:
- Скачайте файл
google-services.json
из вашей консоли Firebase, как описано здесь, и поместите его в папку Assets вашего проекта. Имя пакета вашего приложения должно быть добавлено в ваш проект Firebase и сохранено в файлеgoogle-services.json
. - Импортируйте плагин push-уведомлений для Unity в папку Assets в Unity.
Интеграция с Android
Anchor link toОбновите AndroidManifest.xml
Anchor link toОбъедините содержимое **Assets/Plugins/Android/PushwooshAndroidManifest.xml**
с **Assets/Plugins/Android/AndroidManifest.xml**
. Если у вас еще нет Android Manifest, переименуйте PushwooshAndroidManifest.xml
в AndroidManifest.xml
.
Замените PACKAGE_NAME на пакет вашего проекта. Обратите внимание, что в Unity он называется ‘Bundle Identifier’.
Регистрация для получения push-уведомлений
Anchor link toСоздайте скрипт PushNotificator.cs и прикрепите его к Camera Object на сцене.
using UnityEngine;using System.Collections;
public class PushNotificator : MonoBehaviour { // use for initialization void Start () { Pushwoosh.ApplicationCode = "ENTER_PUSHWOOSH_APP_ID_HERE"; Pushwoosh.FcmProjectNumber = "ENTER_FCM_SENDER_ID_HERE"; Pushwoosh.Instance.OnRegisteredForPushNotifications += OnRegisteredForPushNotifications; Pushwoosh.Instance.OnFailedToRegisteredForPushNotifications += OnFailedToRegisteredForPushNotifications; Pushwoosh.Instance.OnPushNotificationsReceived += OnPushNotificationsReceived; Pushwoosh.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); }}
Настройка токена API устройства
Anchor link toВ вашем AndroidManifest.xml
добавьте следующее:
<meta-data android:name="com.pushwoosh.apitoken" android:value="YOUR_DEVICE_API_TOKEN" />
Узнайте больше о вашем токене API устройства Pushwoosh
Важно: Убедитесь, что токену предоставлен доступ к нужному приложению в вашей панели управления Pushwoosh. Узнать больше
Интеграция с iOS
Anchor link toСкрытие оповещений
Anchor link toЧтобы скрыть оповещения, когда приложение находится на переднем плане, просто установите значение Pushwoosh_SHOW_ALERT
на NO
в вашем Info.plist.
Настройка токена API устройства
Anchor link toВ вашем файле Info.plist
установите для ключа PW_API_TOKEN
значение токена API устройства Pushwoosh
Важно: Убедитесь, что токену предоставлен доступ к нужному приложению в вашей панели управления Pushwoosh. Узнать больше
Включение push-уведомлений в Xcode
Anchor link toXcode требует, чтобы Push Notifications были включены в разделе Capabilities для регистрации push-уведомлений. Для этого перейдите в Capabilities → Enable Push Notifications.

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

Дополнительные настройки для Android
Anchor link toЧтобы получать push-уведомления на Android, когда приложение активно, без размещения уведомления в центре уведомлений, установите следующую строку в AndroidManifest.xml в значение true:
<meta-data android:name="PW_BROADCAST_PUSH" android:value="false" />
Интеграция с Amazon
Anchor link toПолучение API-ключа от Amazon
Anchor link toПолучите API KEY от Amazon в соответствии с руководством Amazon.
Для предварительной или «отладочной» версии вашего приложения вы должны создать API-ключ и сохранить его как единственные данные в файле с именем api_key.txt . Файл api_key.txt должен находиться в папке Assets вашего проекта.
Для релизной или «рабочей» версии вашего приложения вам может не понадобиться создавать API-ключ. Только если вы подписываете релизную версию вашего приложения собственным сертификатом, вы должны создать дополнительный API-ключ для релизной версии вашего приложения. В противном случае, если вы разрешаете Amazon подписывать ваше приложение от вашего имени, вам не нужно создавать дополнительный API-ключ.
Интеграция с Windows Store
Anchor link to- Добавьте
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 с установленным плагином Pushwoosh
Anchor link toЕсли вы столкнулись с ошибкой, подобной показанной на изображении ниже, это может быть вызвано проблемой во фреймворке Unity с проектами, использующими сторонние плагины.

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