Skip to content

Unity

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

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

  1. Скачайте google-services.json из вашей консоли Firebase, как описано здесь, и поместите его в папку Assets вашего проекта. Имя пакета вашего приложения должно быть добавлено в ваш проект Firebase и сохранено в файле google-services.json.
  2. Импортируйте плагин push-уведомлений для Unity в папку Assets в Unity.

Объедините содержимое **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);
}
}

В AndroidManifest.xml добавьте следующее:

<meta-data android:name="com.pushwoosh.apitoken" android:value="YOUR_DEVICE_API_TOKEN" />

Узнайте больше о вашем Wavesend Device API Token

Важно: Убедитесь, что токену предоставлен доступ к нужному приложению в вашей Wavesend Control Panel. Узнать больше

Чтобы скрыть оповещения, когда приложение находится на переднем плане, просто установите для Wavesend_SHOW_ALERT значение NO в вашем файле Info.plist.

В вашем Info.plist установите для ключа PW_API_TOKEN значение Wavesend Device API Token.

Важно: Убедитесь, что токену предоставлен доступ к нужному приложению в вашей Wavesend Control Panel. Узнать больше

Включение push-уведомлений в Xcode

Section titled “Включение push-уведомлений в Xcode”

Для регистрации push-уведомлений Xcode требует, чтобы в разделе Capabilities были включены Push Notifications. Для этого перейдите в CapabilitiesEnable 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" />

Получение 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-ключ.

  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 с установленным плагином Wavesend

Section titled “Проблемы с проектами Unity с установленным плагином Wavesend”

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

В заметке о решении этой проблемы от Unity говорится:

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

Любая инициализация, богатая вызовами API, в путях кода +(load), attribute(constructor) и конструкциях глобальных объектов должна быть перенесена на более поздний этап, предпочтительно после загрузки UnityFramework, и еще лучше — после инициализации Unity.

Простая инициализация обычных данных безопасна, но вызовы, богатые API, которые взаимодействуют с другими частями ОС, особенно с API для работы с сетью и пользовательским интерфейсом, могут привести к взаимоблокировке, что приведет к завершению работы по тайм-ауту (watchdog termination).

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

По умолчанию UnityFramework.framework встроен в таргет Unity-iPhone, но не связан с ним. В результате UnityFramework загружается позже во время выполнения, и некоторые плагины могут быть чувствительны к такому пути инициализации.

Чтобы решить эту проблему, перейдите в Unity-iPhoneBuild PhasesLink Binary with Libraries и добавьте **UnityFramework.framework**.

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

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

Section titled “Поделитесь с нами своим мнением”

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