- Каждый сайт запрашивает разрешения в браузере, сложно контролировать, сколько источников сейчас могут присылать тебе уведомления, у каждого висит свой фоновый процесс, который отдельно просыпается, нет никакой истории полученных уведомлений или фильтрации, нет никакой синхронизации подписок между устройствами
- Сайтам необходимо отправлять уведомления напрямую на устройства, следить за актуальностью базы устройств, следить за каждым устройством пользователя в отдельности
- Данная возможность работает лишь на сайтах с SSL
Промежуточный сервис, который берет на себя все эти функции, может решить возникающие проблемы.
Основную статью по которой я собственно делал эту функцию можно найти тутЕсли вкратце, то браузер создает Service-Worker (доступен с Chrome 40), это фоновый процесс на JS. Он не постоянно работает в фоне, а откликается на различные запросы извне. Например, на приход Push-сообщения. Конечно же, он не требует открытой страницы. Более того, он работает даже если браузер закрыт (ну не совсем закрыт, а в фоновом режиме.)
При приходе Push-сообщения, браузер показывает уведомления. Вот и все. Это позволяет полностью реализовать прием Push-уведомлений без каких-либо приложений, более того, это работает и на андроиде в мобильном хроме! Из явных недостатков можно выделить на данный момент то, что нельзя передать в push-сообщении полезную нагрузку, т.е. само сообщение. Google объясняет это проблемами безопасности, и сообщает, что в Chrome 44 проблема полностью решена и браузер сможет принимать данные напрямую. Также, по некоторым данным, если браузер был закрыт, то до него не дойдет запрос. Эта проблема решаема тем, что можно вывалить все уведомления, которые не были подтверждены при получении любого следующего сообщения.
Вы можете отправлять уведомления через Push API даже без сайта вовсе. То есть вы можете создать канал и отправлять уведомления вручную, либо с сервера через curl, либо подключив RSS-ленту. В данном случае пользователь разрешает доступ к отправке сайту PushAll.
При этом разработчику не надо задумываться кому он отправляет уведомление. На приложение под Android, на дополнение хром, или сразу через Push API. Он может отправить сообщение десятку пользователей, а на деле оно уйдет на каждое из 2-3 устройств каждого пользователя. В дальнейшем это будут и другие браузеры, и другие платформы, такие как iOS и WP.
Функция была написана буквально вчера и поэтому требуется тестирование.
Для теста уведомлений через Push API нужно зайти на сайт и войти используя аккаунт Google.
Отпишите мне в личку, или в комментариях, как работают уведомления. У некоторых были проблемы с работой уведомлений, и мне хотелось бы исправить ситуацию. Также проверьте уведомления на вашем Android смартфоне. Как протестируете, думаю найдете парочку интересных каналов в каталоге.
Сразу, чтобы не было вопросов: не обязательно получать все уведомления с каналов. Подписались на канал, открыли его снова — окрыли фильтр, ввели ключевые слова. По тем тематикам, что вам важны в первую очередь уведомления будут приходить сразу на устройства, а остальное можете читать уже с самих сайтов (это относится к примеру, к каналу СоХабр или к каналам сериалов)
Данная функция позволяет охватить большую аудиторию пользователей. Многим сложно ставить приложение или дополнение, однако нажать пару кнопок не составит труда.В дальнейшем я напишу специальный виджет для сайтов. Можно будет в один клик сделать сразу 4 вещи.