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