Я читал в течение последних нескольких часов о Push Notification API и Web Notification API . Я также обнаружил, что Google и Apple бесплатно предоставляют сервис push-уведомлений через GCM и APNS соответственно.
Я пытаюсь понять, сможем ли мы реализовать push-уведомления для браузеров с помощью Desktop Notification, что, я полагаю, и делает API веб-уведомлений. Я видел документацию Google о том, как это можно сделать для Chrome здесь и здесь .
Теперь я все еще не могу понять:
- Можем ли мы использовать GCM / APNS для отправки push-уведомлений всем веб-браузерам, включая Firefox и Safari?
- Если не через GCM, можем ли мы иметь свой собственный сервер, чтобы делать то же самое?
Я полагаю, что все ответы в одном ответе могут помочь многим людям, испытывающим подобные заблуждения.
Ответы:
Итак, я отвечаю на свой вопрос. Я получил ответы на все мои запросы от людей, которые в прошлом создавали службы push-уведомлений.
Ответ на оригинальные вопросы, заданные 3 года назад:
Ответ: Google устарел GCM по состоянию на апрель 2018 года. Теперь вы можете использовать Firebase Cloud Messaging (FCM). Это поддерживает все платформы, включая веб-браузеры.
Ответ: Да, push-уведомление может быть отправлено с нашего собственного сервера. Поддержка того же пришла во все основные браузеры.
Проверьте эту кодовую метку от Google, чтобы лучше понять реализацию.
Некоторые уроки:
Реализация собственного бэкэнда на разных языках программирования .:
Дальнейшие чтения: - - Документацию с сайта Firefox можно прочитать здесь . - Очень хороший обзор Web Push от Google можно найти здесь. - ответы на часто задаваемые вопросы наиболее распространенные заблуждения и вопросы.
Есть ли бесплатные услуги, чтобы сделать то же самое? Есть некоторые компании, которые предлагают аналогичное решение в бесплатных, платных и бесплатных моделях. Я перечисляю несколько ниже:
Примечание: при выборе бесплатной услуги не забудьте прочитать TOS. Бесплатные сервисы часто работают, собирая пользовательские данные для различных целей, включая аналитику.
Кроме того, вам нужно иметь HTTPS для отправки push-уведомлений. Тем не менее, вы можете получить https бесплатно через letsencrypt.org
источник
onesignal
Приятная информация: 3Хавьер освещал уведомления и текущие ограничения.
Мое предложение:
window.postMessage
пока мы ждем, пока браузер с ограниченными возможностями наверстает упущенное, ещеWorker.postMessage()
нужно работать с веб-работниками.Это может быть запасной вариант с обработчиком отображения сообщений в диалоговом окне, для которого при сбое теста функции уведомлений или в отказе в доступе.
Проверка уведомлений имеет функцию и отказано в разрешении:
источник
Вы можете передавать данные с сервера в браузер через события на стороне сервера . По сути, это однонаправленный поток, на который клиент может «подписаться» из браузера. Отсюда вы можете просто создавать новые
Notification
объекты в виде потока SSE в браузер:Немного устаревшая, но эта статья Эрика Бидельмана объясняет основы SSE, а также предоставляет некоторые примеры серверного кода.
источник
GCM / APNS предназначены только для Chrome и Safari соответственно.
Я думаю, что вы можете искать
Notification
:https://developer.mozilla.org/en-US/docs/Web/API/notification
Работает в Chrome, Firefox, Opera и Safari .
источник
Я предполагаю, что вы говорите о реальных push-уведомлениях, которые могут быть доставлены, даже если пользователь не просматривает ваш сайт (в противном случае проверьте WebSockets или устаревшие методы, такие как длинный опрос).
GCM предназначен только для Chrome, а APN - только для Safari. Каждый производитель браузеров предлагает свой сервис.
Push API требует двух бэкэндов ! Один предлагается производителем браузера и отвечает за доставку уведомления на устройство. Другой должен быть вашим (или вы можете использовать стороннюю службу, такую как Pushpad ) и отвечает за запуск уведомления и обращение в службу производителя браузера (например, GCM, APN, push-серверы Mozilla ).
Раскрытие информации: я основатель Pushpad
источник
это простой способ сделать push-уведомление для всех браузеров https://pushjs.org
источник
Могу ли я переопределить ваш вопрос, как показано ниже
Да. К сегодняшнему дню (2017/05) вы можете использовать одну и ту же реализацию на стороне клиента и сервера для работы с Chrome, Firefox и Opera (без Safari). Потому что они реализовали веб-push-уведомления таким же образом. Это протокол Push API от W3C. Но у Safari есть своя старая архитектура. Поэтому мы должны поддерживать Safari отдельно.
Обратитесь к репозиторию browser-push за рекомендациями по реализации push-уведомлений через Интернет для вашего веб-приложения с собственным бэкэндом. На примерах объясняется, как вы можете добавить поддержку веб-push-уведомлений для вашего веб-приложения без каких-либо сторонних сервисов.
источник
На данный момент GCM работает только для Chrome и Android. аналогично Firefox и другие браузеры имеют свои собственные API.
Теперь встает вопрос, как реализовать push-уведомление, чтобы оно работало для всех распространенных браузеров с собственным бэкэндом.
2. после получения конечной точки с помощью Ajax сохраните ее вместе с именем браузера.
3.Вы должны создать серверную часть, которая имеет поля для заголовка, сообщения, значка, URL клика согласно вашим требованиям. теперь, после нажатия на уведомление об отправке, вызовите функцию, скажем send_push (). В этом написать код для разных браузеров, например
3.1. для хрома
3.2. для Мозиллы
для других браузеров, пожалуйста, Google ...
источник
Я предлагаю использовать pubnub. Я попытался использовать ServiceWorkers и PushNotification из браузера, однако, когда я попробовал это, веб-просмотры не поддерживали это.
https://www.pubnub.com/docs/web-javascript/pubnub-javascript-sdk
источник