Настройка плагина Cordova
Push-уведомления на переднем плане
Section titled “Push-уведомления на переднем плане”При получении push-уведомления в фоновом режиме никакие события не инициируются до тех пор, пока пользователь не нажмет на уведомление. После его открытия плагин Wavesend инициирует события 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 wavesend-cordova-plugin --variable IOS_FOREGROUND_ALERT_TYPE="ALERT" --variable ANDROID_FOREGROUND_PUSH="true"Пользовательский звук push-уведомления
Section titled “Пользовательский звук push-уведомления”Чтобы включить пользовательский звук уведомлений на 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="/docs/market:*" /> ... <-- Добавьте эту строку для каждого звука --> <resource-file src="/docs/www/res/push.wav" target="res/raw/push.wav" /> </platform></widget>Звуки будут доступны в выпадающем меню Sound на панели Send Push.
На iOS звуковые файлы пока не связываются с приложением Wavesend автоматически, но могут быть использованы вручную, например www/res/sound_name.wav.
Пользовательская иконка push-уведомления
Section titled “Пользовательская иконка push-уведомления”Иконку push-уведомления на Android можно настроить локально, используя pw_notification в качестве имени ресурса для этой иконки (см. примеры 1 2); или удаленно, указав любое имя ресурса в настройке Icon на панели Send Push.
Пользовательские данные в push-уведомлении
Section titled “Пользовательские данные в push-уведомлении”Пользовательские данные можно отправлять с помощью настройки Action на панели Send Push. Чтобы получать и обрабатывать такие данные, используйте следующий код:
document.addEventListener('push-notification', function(event) { var message = event.notification.message; // Текст push-уведомления var userData = event.notification.userdata; // Пользовательские данные push-уведомления
if (userData) { // здесь обрабатываются пользовательские данные push-уведомления } });Управление уровнем логирования
Section titled “Управление уровнем логирования”Для помощи в отладке и интеграции SDK по умолчанию будет выводить все запросы в консоль. Когда вы будете готовы к сборке для продакшена, установите для переменной LOG_LEVEL одно из следующих значений:
NONE– нет логов от SDKERROR– отображать в консоли только ошибкиWARNING– показывать предупрежденияINFO– показывать информационные сообщенияDEBUG– показывать все, включая отладочную информацию (по умолчанию)
Пример:
cordova plugin add wavesend-cordova-plugin --variable LOG_LEVEL="INFO"Deep linking
Section titled “Deep linking”Мы рекомендуем использовать https://github.com/EddyVerbruggen/Custom-URL-scheme
Настроить deep links для Cordova очень просто, и это «из коробки» работает с функциональностью deep linking от Wavesend.
Вы можете найти информацию об установке и использовании в этом руководстве или в документации плагина.
Rich Media JS Bridge
Section titled “Rich Media JS Bridge”Вы можете вызывать свои 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);}Использование плагина Wavesend с другими сервисами FCM
Section titled “Использование плагина Wavesend с другими сервисами FCM”Если ваше приложение использует другие плагины, которые зависят от firebase-messaging, это может привести к конфликтам или к тому, что один из плагинов не будет работать должным образом. Чтобы разрешить этот конфликт, вы можете добавить собственный класс FirebaseMessagingService, который будет маршрутизировать push-уведомления между плагинами. Плагин Wavesend для Cordova содержит шаблон этого класса, который вы можете использовать как есть, чтобы заставить все уведомления проходить через обработчики Wavesend, или изменить его для обработки уведомлений от других провайдеров. Чтобы включить шаблон, раскомментируйте следующие строки в файле plugin.xml плагина:
<service android:name="com.wavesend.plugin.pushnotifications.CustomFirebaseMessagingService" android:exported="false"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT"/> </intent-filter> </service>Поделитесь с нами своим мнением
Section titled “Поделитесь с нами своим мнением”Ваши отзывы помогают нам делать наш продукт лучше, поэтому мы будем рады, если вы поделитесь своим мнением о процессе интеграции SDK. Если вы столкнетесь с какими-либо трудностями, пожалуйста, сообщите нам об этом через эту форму.