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