Разработка Service Workers Web Push
Добрый день
ищу специалиста готового реализовать отправку Web Push на любые устройства Для сервиса, связывающего поставщика и покупателя на рынке металлолома и производственных отходов созданного: C# MVC5, база данных MS SQL 2016. + JavaScript Для настройки серверной части был использован материал из данной статьи: https://blog.elmah.io/how-to-send-pu...-asp-net-core/ но после реализации есть недочеты 1. Не приходят сообщения на ПК в Google Chrome 2. Не верно настроена подписка на Web Push 3. Не приходят сообщения и нет возможности на них подписаться в iOS Оплата по договоренности Контакты тел: +79227335515 емайл: krakoss@mail.ru С уважением Юрий :help: Благодаря этой статье == Push-уведомления для Windows 10 в Google Chrome: нововведения Удалось настроить WINDOWS 10 для получения пуш в браузере GOOGLE CHROME windows 10 необходимо настроить Отдельно для того чтобы получать ПУШ на которые клиент подписался в браузере GOOGLE CHOME на своем ПК |
код существующего ServiceWorker.js
var num = 1; //habr.com/ru/company/2gis/blog/350034/ || qna.habr.com/q/616168 self.addEventListener('install', () => self.skipWaiting()) self.addEventListener('activate', () => { self.clients.matchAll({ type: 'window' }).then(windowClients => { for (const windowClient of windowClients) { // Force open pages to refresh, so that they have a chance to load the // fresh navigation response from the local dev server. windowClient.navigate(windowClient.url) } }) }) self.addEventListener('push', function (event) { if (!event.data) return; var serverData = event.data.json(); if (serverData) { var title = serverData.companynameandtown; var options = { tag: 'renotify', renotify: true, body: ++num > 1 ? serverData.textmessage : serverData.textmessage, icon: serverData.logocompany, data: { dateOfArrival: Date.now(), redirectUrl: serverData.redirectUrl } }; event.waitUntil( // Получить список клиентов для SW self.clients.matchAll().then(function (clientList) { // Проверяем, есть ли хотя бы один сфокусированный клиент. var focused = clientList.some(function (client) { return client.focused; }); var notificationMessage; if (focused) { notificationMessage = 'Imperio! You\'re still here, thanks!'; } else if (clientList.length > 0) { notificationMessage = 'Imperio! You haven\'t closed the page, ' + 'click here to focus it!'; } else { notificationMessage = 'Imperio! You have closed the page, ' + 'click here to re-open it!'; } self.registration.showNotification(title, options); }) ); } else console.log("Нет данных для отображения."); }); // Регистрируем обработчик события 'notificationclick'. self.addEventListener('notificationclick', function (event) { event.notification.close(); var url = event.notification.data.redirectUrl; event.waitUntil( // Получаем список клиентов SW. self.clients.matchAll().then(function (clientList) { // Если есть хотя бы один клиент, фокусируем его. if (clientList.length > 0) { return clientList[0].focus(); } // В противном случае открываем новую страницу. return self.clients.openWindow(url); }) ); }); self.addEventListener('notificationclose', function (event) { //do something event.notification.close(); }); function arrayBufferToBase64(buffer) { var binary = ''; var bytes = new Uint8Array(buffer); var len = bytes.byteLength; for (var i = 0; i < len; i++) { binary += String.fromCharCode(bytes[i]); } return window.btoa(binary); } |
Часовой пояс GMT +3, время: 11:12. |