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

Настройка плагина 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 – оповещение

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:*" />
...
<-- Add this line for each sound -->
<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

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

document.addEventListener('push-notification',
function(event) {
var message = event.notification.message; // Push message
var userData = event.notification.userdata; // Custom push data
if (userData) {
// handle custom push data here
}
}
);

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

Anchor link to

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

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

Пример:

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

Диплинки

Anchor link to

Мы рекомендуем использовать https://github.com/EddyVerbruggen/Custom-URL-scheme
Настроить диплинки для Cordova очень просто, и это работает с функциональностью диплинков Pushwoosh “из коробки”.

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

Rich Media JS Bridge

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. Если вы столкнетесь с какими-либо трудностями, пожалуйста, не стесняйтесь поделиться своими мыслями с нами через эту форму.