Установка push-уведомлений при API интеграции
Установка
Для запуска push-уведомлений вам необходимо добавить в корневую папку сайта следующие файлы:
rr.wpsw.import.js
rr.wpsw.empty.js
А также добавить в секцию <head>
загрузку следующего скрипта:
<script src="https://cdn.retailrocket.net/content/javascript/retailrocket.webpush.js"></script>
После добавления файлов, вам необходимо обратиться в техническую поддержку Retail Rocket ([email protected]) для проверки интеграции и включения рассылок, либо сообщить вашему персональному менеджеру.
Подписка пользователя
После того, как все было провалидировано и включено, есть возможность запустить процесс подписки для пользователя.
Для этого необходимо вызвать следующую функцию:
<script type="text/javascript">
retailrocket.modules.webPushSubscription.execute("<<name>>",function(subscription) {
// Код для отправки подписки
})
</script>
Если пользователь согласился, то вызовется callback функция. Подписка пользователя передается в этот callback как объект PushSubscription. Далее, с подпиской можно совершать необходимые действия, например - передача подписки в Retail Rocket.
Пример обработки объекта subscription, для извлечения параметров, необходимых для метода передачи подписки:
retailrocket.modules.webPushSubscription.execute("<<name>>", function(subscription) {
console.log('Endpoit: ', subscription.endpoint);
navigator.serviceWorker.ready.then(function(registration) {
registration.pushManager.getSubscription().then(function(subscription) {
if (subscription) {
const rawKey = subscription.getKey('p256dh');
const key = rawKey ? btoa(String.fromCharCode.apply(null, new Uint8Array(rawKey))) : null;
const rawAuthSecret = subscription.getKey('auth');
const authSecret = rawAuthSecret ? btoa(String.fromCharCode.apply(null, new Uint8Array(rawAuthSecret))) : null;
console.log('Public Key: ', key);
console.log('Auth Secret: ', authSecret);
} else {
console.log('No subscription found.');
}
}).catch(function(error) {
console.error('Error getting subscription:', error);
});
}).catch(function(error) {
console.error('Service Worker not ready:', error);
});
// Код для отправки подписки
})
На примере выше, после того, как пользователь нажмет на разрешение на получение web-push уведомлений, в консоль выведутся значения параметров, которые необходимо будет передать в соответствующий метод.
Подробнее API метод передачи подписки описан в соответствующем разделе.
Updated about 1 month ago