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

Настройка плагина для Cordova

Push-уведомления в активном режиме

Anchor link to

При получении push-уведомления в фоновом режиме никакие события не инициируются до тех пор, пока на него не нажмут. После открытия уведомления плагин Pushwoosh генерирует события push-receive и push-notification.

Когда push-уведомление получено в активном режиме (когда приложение на переднем плане), плагин автоматически генерирует событие push-receive и создает уведомление в Центре уведомлений. Когда это уведомление открывается, генерируется событие push-notification.

Вы можете прослушивать событие push-receive, чтобы немедленно отреагировать на push-уведомление, если оно получено в активном режиме, например, чтобы обновить контент на текущей странице вашего приложения. Событие push-notification, с другой стороны, используется для реакции на клик по уведомлению, что требует взаимодействия с пользователем, например, для навигации внутри приложения, запуска нового процесса и т. д.

Чтобы изменить внешний вид push-уведомления в активном режиме, вы можете использовать параметры IOS_FOREGROUND_ALERT_TYPE и ANDROID_FOREGROUND_PUSH:

IOS_FOREGROUND_ALERT_TYPE

  • NONE – не отображать уведомление, когда приложение находится в активном режиме (по умолчанию)
  • BANNER – отображает баннер-уведомление в приложении
  • ALERT – стандартное окно с уведомлением (alert)

ANDROID_FOREGROUND_PUSH

  • true – не обрабатывать автоматически push-уведомления в активном режиме
  • false – автоматически обрабатывать push-уведомления в активном режиме (по умолчанию)

Пример:

cordova plugin add pushwoosh-cordova-plugin --variable IOS_FOREGROUND_ALERT_TYPE="ALERT" --variable ANDROID_FOREGROUND_PUSH="true"

Пользовательский звук push-уведомления

Anchor link to

Чтобы включить пользовательский звук уведомления на Android, поместите звуковые файлы в папку www/res и укажите каждый звук в файле config.xml:

<?xml version=‘1.0’ encoding=‘utf-8’?>
<widget id="YOUR_ID" version="1.0.0" xmlns="http://www.w3.org/ns/widgets” xmlns:cdv=“http://cordova.apache.org/ns/1.0">
...
<platform name="android">
<allow-intent href="market:*" />
...
<!-- Добавьте эту строку для каждого звука -->
<resource-file src="www/res/push.wav" target="res/raw/push.wav" />
</platform>
</widget>

Звуки будут доступны в выпадающем меню Sound на панели Send Push.

На iOS звуковые файлы еще не связываются с приложением Pushwoosh автоматически, но их можно использовать вручную, например www/res/sound_name.wav.

Пользовательская иконка push-уведомления

Anchor link to

Иконку push-уведомления на Android можно настроить локально, используя pw_notification в качестве имени ресурса для иконки (см. примеры 1 2); или удаленно, указав имя любого ресурса в параметре Icon на панели Send Push.

Пользовательские данные в push-уведомлении

Anchor link to

Пользовательские данные можно отправлять с помощью параметра Action на панели Send Push. Для получения и обработки этих данных используйте следующий код:

document.addEventListener('push-notification',
function(event) {
var message = event.notification.message; // Текст push-уведомления
var userData = event.notification.userdata; // Пользовательские данные push-уведомления
if (userData) {
// здесь обработайте пользовательские данные
}
}
);

Управление уровнем логирования

Anchor link to

Для помощи в отладке и интеграции SDK по умолчанию выводит все запросы в консоль. Когда вы будете готовы к созданию производственной сборки, установите для переменной LOG_LEVEL одно из следующих значений:

  • NONE – не выводить логи из SDK
  • ERROR – отображать в консоли только ошибки
  • WARNING – показывать предупреждения
  • INFO – показывать информационные сообщения
  • DEBUG – показывать все, включая отладочную информацию (по умолчанию)

Пример:

cordova plugin add pushwoosh-cordova-plugin --variable LOG_LEVEL="INFO"

Глубокие ссылки (Deep linking)

Anchor link to

Мы рекомендуем использовать https://github.com/EddyVerbruggen/Custom-URL-scheme
С его помощью очень легко настроить глубокие ссылки для Cordova, и он «из коробки» работает с функциональностью глубоких ссылок Pushwoosh.

Инструкции по установке и использованию вы найдете в этом руководстве или в документации плагина.

JS-мост для Rich Media

Anchor link to

Вы можете вызывать свои JS-функции из Rich Media в Cordova WebView через javascript-интерфейсы.
Вызов из Rich Media должен иметь следующий формат:

<interface>.callFunction(‘<function_name>’, <params_string>)

Пример:

1. Создайте Rich Media с javascript-вызовом:

testBridge.callFunction('testFunction', JSON.stringify({'param1' : 1, 'param2':'test'}))

2. Добавьте javascript-интерфейс в ваш проект:

pushNotification.addJavaScriptInterface('testBridge');

3. Добавьте функцию:

function testFunction(params) {
alert("Bridge is working! " + params.param1 + " " + params.param2);
}

Использование плагина Pushwoosh с другими сервисами FCM

Anchor link to

Если ваше приложение использует другие плагины, которые работают с firebase-messaging, это может привести к конфликтам или некорректной работе одного из плагинов. Чтобы разрешить этот конфликт, вы можете добавить пользовательский класс FirebaseMessagingService, который будет маршрутизировать push-уведомления между плагинами. Плагин Pushwoosh для Cordova содержит шаблон этого класса, который вы можете использовать как есть, чтобы все уведомления проходили через обработчики Pushwoosh, или изменить его для обработки уведомлений от других поставщиков. Чтобы включить шаблон, раскомментируйте следующие строки в файле plugin.xml плагина:

<service android:name="com.pushwoosh.plugin.pushnotifications.CustomFirebaseMessagingService" android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>

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

Anchor link to

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