Перейти к содержанию

Unity

Скачать плагин
Скачать пример
Документация по плагину

Шаги по интеграции

Anchor link to

Чтобы интегрировать Pushwoosh в ваше приложение Unity, выполните следующие шаги:

  1. Скачайте файл google-services.json из вашей консоли Firebase, как описано здесь, и поместите его в папку Assets вашего проекта. Имя пакета вашего приложения должно быть добавлено в ваш проект Firebase и сохранено в файле google-services.json.
  2. Импортируйте плагин 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 to

Xcode требует, чтобы Push Notifications были включены в разделе Capabilities для регистрации push-уведомлений. Для этого перейдите в CapabilitiesEnable 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
  1. Добавьте link.xml в ваш каталог Assets/ со следующим содержимым:
<linker>
<assembly fullname="PushSDK" preserve="all"/>
</linker>
  1. Вам также необходимо выполнить 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-iPhoneBuild Phases → в раздел сборки Link Binary with Libraries и добавьте **UnityFramework.framework**.

Это гарантирует, что UnityFramework загрузится одновременно с основным исполняемым файлом.

Поделитесь с нами своим мнением

Anchor link to

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