Не работают пуш уведомления на chrome. Как включить и отключить веб пуш уведомления в Google Chrome? Что такое push-уведомления

Стало появляться много сервисов предоставляющих услуги push-уведомлений, много сайтов стали вешать себе на сайт баннеры с предложением включить оповещения. Куда на зайди - везде запрос на оповещения, с этим нужно что то делать.

В данном примере мы будем использовать браузер Chrome. Настройки аналогичны в Yandex-браузере. Вы сможете либо отписаться от определенного сайта, либо запретить всем сайтам слать вам оповещения. Это позволит освободиться от множества всплывающих окон, которые просят вас разрешить доступ к оповещениям.

Я уже подписался на оповещения

Чтобы избавиться от оповещений определенного сайта, нажмите на любое его оповещение правой кнопкой мыши и выберете - "отключить оповещения от..."

Я вижу на многих сайтах запрос "сайт запрашивает разрешение на Показывать оповещения"

Избавимся от них раз и навсегда, вы больше никогда не будете видеть этих окон на сайтах, которые вас преследуют.Просто следуйте инструкции ниже.

Выбираем меню Chrome -> Настройки

Прокручиваем вниз до "Оповещения" и переводим переключатель в положение "Не показывать уведомления на сайтах"

Эти настройки не затрагивают оповещения в дополнениях. То есть если вы используете дополнение PushAll, эта настройка на него не повлияет, вы также можете настроить исключение из правил для определенных сайтов.

Если вам не понравились оповещения в браузере от сайтов, вы можете изменить мнение о них, заглянув в каталог каналов на нашем сайте

Наш подход к уведомлениям акцентирован на удобство для пользователя. Вы сможете фильтровать оповещения по вашим интересам, получать уведомления о выходе интересующих вас статей или озвучки любимого сериала.

Необычное свойство Push-уведомлений - время жизни.

События проходят и теряют свою актуальность. Письмо, которое вы отправили человеку, сообщающее о новой акции не имеет смысла после конца акции. Как поступить? Пуш-уведомления умеют "умирать", когда в них больше нет необходимости.


Как отключить push-уведомления от сайтов в браузере

Начали всплывать оповещения на экране? Надоели запросы на включение push-уведомлений в браузере на всех сайтах? В этой статье мы научимся отключать уже включенные оповещения, а также выключать функции оповещений в браузере раз и навсегда!

Узнать, что такое push-уведомления можно , но как от них избавиться в браузере?
В данном примере мы будем использовать браузер Chrome. Настройки аналогичны в Yandex-браузере. Вы сможете либо отписаться от определенного сайта, либо запретить всем сайтам слать вам оповещения. Это позволит освободиться от множества всплывающих окон, которые просят вас разрешить доступ к оповещениям.

Я уже подписался на оповещения

Чтобы избавиться от оповещений определенного сайта, нажмите на любое его оповещение правой кнопкой мыши и выберете - "отключить оповещения от..."

Я вижу на многих сайтах запрос "сайт запрашивает разрешение на Показывать оповещения"

Избавимся от них раз и навсегда, вы больше никогда не будете видеть этих окон на сайтах, которые вас преследуют.
Просто следуйте инструкции ниже.

Выбираем меню Chrome -> Настройки


Далее открываем "Показывать дополнительные настройки" -> "Настройки контента"

Прокручиваем вниз до "Оповещения" и переводим переключатель в положение "Не показывать уведомления на сайтах"

Эти настройки не затрагивают оповещения в дополнениях. То есть если вы используете дополнение PushAll, эта настройка на него не повлияет, вы также можете настроить исключение из правил для определенных сайтов.

Если вам не понравились оповещения в браузере от сайтов, вы можете изменить мнение о них, заглянув в
Наш подход к уведомлениям акцентирован на удобство для пользователя. Вы сможете фильтровать оповещения по вашим интересам, получать уведомления о выходе интересующих вас статей или озвучки любимого сериала.


Push – уведомление, что это такое? Это такой тип уведомлений, которые появляются, после входа на определенные сайт, в верхнем правом или левом углу окна браузера, с предложением подписаться на новости, обновление сайта или прочие изменения посещённого вами портала. В общем, если сказать проще — это всплывающее окно с призывом подписки на сайт.

Я, конечно же, ничего не имею против любых видов подписок. Например, если вам нравится и является для вас полезным материал, который публикуется у нас на сайте, вы без проблем можете подписаться на нас с помощью того же RSS или воспользоваться формой почтовой подписки, а также присоединится к нам в группу ВК или следить за нами в YouTube . А самое главное, что сделать это вы можете по своей инициативе, а не из-за того, что постоянно вылезает окно со словом «Подпишись, подпишись, подпишись ».

Популярность таких Push уведомлений только начинает расти вследствие чего все больше сайтов пробуют вводить подобное и у себя. Уверен, что на всех новостных сайтах эта функция уже давно включена.

Самое удивительное то, что мода на уведомления такого рода, только начала набирать обороты и уже изрядно всем надоела. Многие сравнивают их с той же навязчивой рекламой и всплывающими окнами, которые только мешают и раздражают.

Так что в этой инструкции я покажу, как в настройках вашего браузера, отключить уведомление о подписке и навсегда избавится от этого надоедливого, всплывающего окошка.

Отключение пуш-уведомлений в Mozilla Firefox

В принципе отключение показа уведомлений, почти у всех браузерах происходит непосредственно в настройках. Но, Firefox оказался исключением, да, в настройках можно отключить уведомление, отметив галочкой пункт «Не беспокоить» в настройках содержимого, но блокироваться они будут только до тех пор пока вы не перезапустите браузер.

Как только вы наново откроете Firefox, установлена вами ранее отметка автоматически снимается и все начинается сначала. Конечно же, такой вариант не всех устроит, поэтому для таких пользователей желающих раз и навсегда отключить push-уведомления, следует выполнить следующее:

Установленное вами значение false означает, что больше вас не будут беспокоить с подпиской на получение push-уведомлений.

Блокируем подписку на push-уведомления в Google Chrome

В Chrome с отключением уведомлений намного все проще так, как сделать это можно в обычных настройках и не нужно лезть в конфигурацию браузера.


По необходимости перезагружаем браузер и радуемся отсутствию постоянно всплывающих предложений о получение уведомлений от посещенного вами сайта.

Избавляемся от push-уведомлений в Yandex браузере

Следующим будет не менее известный Yandex браузер. Наверняка многим знают, что для создания этого браузера использовался такой же движок как и в Chrome, поэтому даже настройки почти идентичны.


Например, у меня настройки сохранились почему то только со второго раза, не знаю с чем это связанно, возможно я вместо кнопки «Готово» нажал на крестик и просто закрыл окно, вследствие чего и не сохранились настройки. Ну главное то, что со второго раза все получилось и запрос на подписку уведомлений пропал.

Можно ли отключить push-уведомления в Opera?

Ну и конечно же, мы не обойдем стороной оперу. Знаю, что очень большое количество пользователей до сих пор предпочитают пользоваться именно им. Поэтому, вот инструкция по отключению push-уведомлений для Оперы.


В общем, настройки даже не особо отличаются от предыдущих браузеров, но в принципе это и не важно, главное, что теперь запросы на получение уведомлений от сайта, больше нас не будут беспокоить.

Как отключать пуш(push) -уведомления в Yandex браузере, Chrome, Firefox и Opera

С 2015 года начала стремительно набирать популярность технологияPush API от Chrome. Все чаще, заходя на различные новостные (и не только новостные) сайты, посетителям вылетает вот такой системный фрейм с запросом:

Системное окно Google Chrome, запрашивающее разрешение на доставку уведомлений от сайта.

Я искренне считаю этот канал доставки контента (или привлечения пользователей, называйте как хотите) одним из самых перспективных. Возможно даже, через пару лет эти пуши будут таким же обязательным атрибутом каждого уважающего себя новостного сайта, коими сегодня являются RSS и паблики в социальных сетях.

Однако сегодня эта технология еще довольно молода и руководств по её использованию мало не только в отечественном интернете, но и в зарубежном. Для примера далеко ходить не надо - даже сам “Google”, когда анонсировал Push API, выпустил до слёз скудный пресс-релиз. И только сейчас, несколько часов покопавшись в гугловских FAQ для разработчиков, можно собрать информацию, чтобы собрать худо-бедно работающие скрипты для отправки Push-уведомлений своим читателям.

Как же сделать такие Push-уведомления для своего сайта? Тут есть два пути: использовать сторонние сервисы (они уже есть и некоторые из них очень даже неплохи) или создать собственное решение. Поскольку я сторонник минимального использования сторонних сервисов на сайте, то наш путь вГородебыл предрешен.

Но, ради справедливости, стоит замолвить пару словечек и о внешних решениях. Признаюсь, я не очень изучал этот рынок (причина названа чуть выше), однако нельзя не упомянуть сервисOneSignal, самая привлекательная черта которого в том, что их услуги абсолютно бесплатны - зарабатывают они на продаже данных о посетителях клиентского сайта. Так же есть сервисJeapie , на их стороне очень грамотный маркетинг и, как правило, хорошие отзывы. Однако стоит отметить, что в свое время от их услуготказаласьМедуза - Платформа была попросту не готова к тому количеству пушей, которые приходилось отправлять для огромной аудитории Медузы.

Реализация. Получение учетных данных от Google.

В исходных данных сайт, написанный наRails 3.2.8 и задача сделать на нём пушер уведомлений для Chrome.

Первым делом необходимо перевести сайт на HTTPS (защищённый гипертекстовый протокол), то есть сделать для своего сайта SSL-сертификат. Без него пуши работать не будут (не проверял с обычным http, но так везде пишут). О том, что такое SSL, с чем его едят, как поставить сертификат на сервер и подключить его, я писать не буду - интернет пестрит подобными статьями. Лишь порекомендую для этих целейStartSSL . Это хороший Удостоверяющий центр, с которым дружат все известные мне браузеры, с нарочито простой процедурой регистрации и верификации (нужно лишь минимально знать английский язык) для получения абсолютно бесплатного SSL-сертификата начального уровня, в который можно включить еще пять(sic!) субдоменов.

Итак, мы получили сертификат и соответствующим образом настроили свой Nginx или Apache. Теперь в адресной строке браузера рядом с адресом нашего сайта горит зелёненьким симпатичнейший замочек, надписьhttps://, и, если вам не жалко денег, еще название организации.

Далее идем вGoogle Сloud Platform , где регистрируем новый проект, назвав его, например, MySite-Push.

Создание нового проекта в Coogle Cloud Platform

Через несколько секунд, когда проект будет создан, через разделПодключение к API Google , по ссылкеВключить и настроить API переходим в раздел, где целый список методов API для всех сервисов Google. Там мы должны включить методGoogle Cloud Messaging из раздела Mobile API.

МетодGoogle Cloud Messaging из раздела Mobile API

Скорее всего, при подключении к методу, Google попросит зарегистрировать дополнительные данные. Например, попросит уточнить откуда будет вызываться API, тогда мы указываем необходимый нам тип обработчика (например, Веб-сервер).

После чего указываем IP сервера (если спросит) и генерируем закрытый ключ, по которому будет происходить авторизация запросов. Этот ключ, разумеется, нам в будущем понадобится.

Сгенерированный закрытый ключ для доступа к Google API

После нажатия кнопкиГотово мы окажемся на странице, где нужно будет указать домен и подтвердить на него права через инструменты Search Console. Об этом тоже довольно много статей в интернете, да и сама процедура интуитивно понятна. Так что не будем здесь останавливаться.

По сути, нам больше от Coogle Cloud Platform ничего и не надо. Ключ и идентификатор.

Реализация. Первичная настройка сайта.

Теперь в корневую папку нашего сайта нам нужно добавить файлmanifest.json, в котором будет указано следующее:

{ "name": "mysite.ru Push test", // Название сайта "display": "standalone", // Указываем, где показывать уведомления "gcm_sender_id": "258466066904" // Тот самый идентификатор приложения в Google Cloud Platform }

Это самый необходимый минимум информации для манифеста. Можно погуглить и , какие дополнительные параметры там можно указывать.

Ну и добавить в секцию мета-тег со ссылкой на манифест:

Теперь там же, в корневой папке, создаем файлpush.js, куда вписываем вот такой код:

"use strict"; function SendPushMe() { if ("serviceWorker" in navigator) { console.log("Service Worker is supported"); navigator.serviceWorker.register("/sw.js").then(function() { return navigator.serviceWorker.ready; }).then(function(reg) { console.log("Service Worker is ready:^)", reg); reg.pushManager.subscribe({userVisibleOnly: true}).then(function(sub) { console.log("endpoint:", sub.endpoint); $.get("https://mysite.ru/createpushadresat?adresat=" + sub.endpoint, function(data) {}); }); }).catch(function(error) { console.log("Service Worker error:^(", error); }); } }

Что делает этот код? При вызове метода SendPushMe() он проверяет поддерживает ли браузер подписку на пуши. Затем, если поддерживает (в лог-консоли разработчика появится сообщение “Service Worker is supported ”, в противном случае там же появится сообщение об ошибке), попытается зарегистрироватьService Worker , который скоро появится по адресу/sw.js. Именно в этот момент пользователь увидит запрос от браузера на подтверждение действия. Затем, если пользователь даст согласие, воркер будет зарегистрирован, а по адресуhttps://mysite.ru/createpushadresat GET-запросом в переменнойadresat будет передан уникальный идентификатор браузера. Он же отобразится в лог-консоли разработчика.

Теперь создадим Service Worker. Это будет файлsw.js в корневой папке:

"use strict"; self.addEventListener("install", function(event) { event.waitUntil(self.skipWaiting()); }); self.addEventListener("push", function (event) { event.waitUntil(fetch("/latest.json").then(function (response) { if (response.status !== 200) { console.log("Latest.json request error: " + response.status); throw new Error(); } return response.json().then(function (data) { if (data.error || !data.notification) { console.error("Latest.json Format Error.", data.error); throw new Error(); } var title = data.notification.title; var body = data.notification.body; var icon = "https://mysite.ru/my_beautiful_push_icon.png"; return self.registration.showNotification(title, { body: body, icon: icon, data: { url: data.notification.url } }); }).catch(function (err) { console.error("Retrieve data Error", err); }); })); }); self.addEventListener("notificationclick", function (event) { event.notification.close(); var url = event.notification.data.url; event.waitUntil(clients.openWindow(url)); });

Этот код после его вызова создает уведомление, данные для которого берет из файлаlatest.json, расположенного по адресуhttps://mysite.ru/latest.json. Если запрос этого файла не удался, или сайт ответил невалидным json, в лог-консоли разработчика появится соответствующая запись. Если же все хорошо, будет сформирован пуш. Пуш формируется из переменныхbody  - это короткое текстовое сообщение,title  - заголовок пуша,url  - ссылка, по которой перейдет пользователь при клике на уведомление иicon  - красивой и восхитительной (желательно квадратной, со стороной не меньше 150px) иконкой, на которой будет показан логотип сайта. Причем конкретно в этом скриптеicon  - статичный параметр, а все остальные динамично обновляются изlatest.json .

Можно скрипт чуть передать, чтобы и иконка была динамичным параметром, но, как мне кажется, это будет абсолютно лишним, лучше уведомления брендировать, чем снабжать изображением, которое толком и не рассмотришь в небольшом пуше.

Ну и, наконец, создаемlatest.json, из которого и будет браться информация для уведомлений. Думаю, не трудно догадаться, что лежать он будет в корневой папке. А вот и его содержимое:

{"notification":{"url":"https://mysite.ru/posts/1","title":"Крутейшая новость","body":"Мы сделали офигительную подписку для Chrome"},"_id":319}

Полагаю, объяснять что есть что в этом json’е нет смысла, всё и так понятно.

По идее, уже сейчас наш сайт, а вернее его фронтенд, практически полностью готов. Осталось лишь научиться говорить Google, что у нас появились новые обновления, чтобы тот, в свою очередь, сообщал об этом браузерам наших подписчиков. Ну и, разумеется, динамически обновлять нашlatest.json . Однако, это уже в следующей части.

P.S. Кстати, уже сейчас можно вызвать SendPushMe() и посмотреть, что произойдет. Для этого, например, можно создать ссылку, по клику которой будет этот метод и вызываться:

Вызвать SendPushMe

И, если все сделано правильно, за кликом по такой ссылке высветится системное окошко с запросом:

Но не спешите пока давать разрешение. Нажмите на крестик и пока закройте окошко.

Если вы уже нажали, то откройте настройки сайта (нажав на зеленый замочек в адресной строке, если кто не знает) и в пункте “Оповещения” верните Глобальный параметр по умолчанию (“Спрашивать”).

Теперь откройте консоль разработчикаF12 -> Console . Далее нажмите снова ссылку “Вызвать SendPushMe”.

В консоли должны последовательно появиться две строки, содержащие “Service Worker is supported ” и “Service Worker is ready ” соответственно. А сам браузер должен вновь запросить разрешение. И вот теперь можно дать своё согласие.

В итоге в вашей консоли разработчика должны появиться три таких записи:

Лог подписки на Push в браузере Chrome

Если помните, скриптpush.js отправляет GET-запрос. Именно Endpoint и передаётся серверу с этим запросом. Чуть позже мы научим сайт запоминать их, чтобы мы могли отправлять по этим идентификаторам пуши.

Что мы теперь имеем? У нас есть полноценный подписчик на уведомления от сайта и мы теперь умеем вычленять идентификаторы подписавшихся. Теперь сам Бог велел попробовать послать себе самому уведомление.

Для этого нужно сказать Google о новом уведомлении, а он, в свою очередь, сообщит об этом нашим подписчикам (или одному единственному, как сейчас у нас).

Google уведомляется специальным POST запросом наhttps://gcm-http.googleapis.com/gcm/send вот в такой форме:

Content-Type:application/json Authorization:key=A...A //Закрытый ключ нашего приложения, который мы получили в прошлой части. { "to" : "bk3RNwTe3H0:CI2k_...", // Уникальный идентификатор подписчика. "data" : { "title": "Portugal vs. Denmark", // Данные для уведомления "text": "5 to 1" }, }

Как можно догадаться, этот запрос уведомляет одного конкретного подписчика, причем данные для уведомления передает прямо в запросе. Однако, у нас содержимое уведомления берется из latest.json. Да и отправлять каждому подписчику персональный запрос слишком жирно. Хотя, если вам нужно отправлять индивидуальные и персональные уведомления, этот вариант как-раз вам подойдет. Однако мы будем отправлять запросы пакетно, для чего используем вот такую схему:

Content-Type:application/json Authorization:key=A...A //Закрытый ключ нашего приложения, который мы получили в прошлой части. { "registration_ids" : { [...] // Массив идентификаторов подписчиков. }, }

В таком варианте, поскольку запрос не содержит данных для самого уведомления, браузер будет обращаться к Service Worker, от которого и будет получать информацию.

Давайте через терминал (SSH-консоль) сформируем и отправим запрос:

curl --header "Authorization: key=AI...3A" \ --header Content-Type:"application/json" \ https://gcm-http.googleapis.com/gcm/send \ -d "{\"registration_ids\":[\"cym...W3\"]}"

SSH-консоль с отправленным POST-запросом и появившийся от него Push

На этом скриншоте видно и сам запрос и его итог - пришедшее спустя секунду уведомление.

Да, мы это сделали - самая главная и, кажется, малопонятная часть позади. Дальнейшая работа в этом направлении будет зависеть от того, на чём написан ваш сайт. И, если ваш сайт написан на Rails, то нам с вами всё еще по пути. Если же нет, то не торопитесь прощаться: в следующей заключительной части я еще вернусь к тем вопросам по теме Веб-уведомлений, решение которых будет полезно знать веб-разработчикам любой специализации.

Итак, Push-уведомления Chrome для сайта на Ruby On Rails

Сначала скажу, что пример этого кода валиден для сайта на Rails 3.2.8!

По сути, нам нужно сделать:

  • Функционал, чтобы наш сайт запоминал идентификаторы подписчиков;
  • Модель для создания push-уведомлений;
  • Динамически обновляемый latest.json;
  • Ну и добавить в контроллер пару строк кода, который будет при создании нового Push’а отправлять POST-запрос на сервер Google.
  • Если вы забыли, напомню, что в первой части мы сразу добавили вpush.js строчку для формирования GET-запроса к нам на сайт, который передаёт идентификатор браузера каждого вновь подписавшегося человека.

    Теперь сделаем так, чтобы наш сайт понимал, что это за запрос и сохранял данные. Первым делом создадим модель и контроллер дляPushsubscriber :

    Rails g model pushsubscriber browserkey:string rake db:migrate rails g controller pushsubscribers create delete

    Match "/createpushadresat", to: "pushsubscribers#create", via: :get

    Теперь наш сайт переадресует входящие GET-запросы в контроллерpushsubscribers , где он будет обрабатываться методомcreate . Настроим же его:

    def create @newsubscriber = Pushsubscriber.new(:browserkey => URI(params[:adresat].to_s).path.split("/").last) if @newsubscriber.save? render:text => "ok" else render:text => "fail" end end

    Сразу скажу, этот код лишь для того, чтобы показать, в каком направлении нужно разрабатывать. Он практически ничего не проверяет и не использует ни валидаторы, ни регекспы - не используйте его в таком виде. Проверяется лишь, чтобы входящий параметр содержал данные в виде ссылки, а затем из этой ссылки вычленяется последний после слэша участок и сохраняется в базе. Именно в таком видеpush.js передаетEndpoint . И именно в последней секции (за слэшем) endpoint’а содержится идентификатор браузера.

    Итак, люди начали подписываться на наши обновления и теперь наша База данных пополняется идентификаторами. Пора начать рассылать им уведомления:

    Rails g scaffold notification title:string bodytext:string url:string succescount:integer rake db:migrate

    Эта команда Скаффолдом создаст нам минимально работающую модельnotification c полямиtitle ,bodytext ,url иsuccesscount . Первые три - соответственно заголовок, текст и ссылка будущего оповещения, аsuccesscount  - количество успешно переданных пушей, которое нам будет любезно сообщать Google. Так же будут созданы контроллер с вьюхами для этой модели. Разумеется там еще нужно будет вписать сгенерированные вьюхи в общий дизайн сайта, а контроллер “огородить”before_filter ’ами, чтобы “пушить” могли только люди с соответствующим доступом. Но это вы уже будете решать индивидуально. А сейчас мы лишь чуть-чуть(на самом деле совсем не чуть-чуть) исправим метод create вnotifications_controller.rb :

    require "open-uri" require "multi_json" require "uri" def create @notification = Notification.new(params[:notification]) if @notification.save @adresats = Pushsubscriber.all.collect(&:browserkey) @keys = "{"registration_ids":"[email protected]_json+"}".as_json uri = URI.parse("https://android.googleapis.com/gcm/send") http = Net::HTTP.new(uri.host,uri.port) http.use_ssl = true req = Net::HTTP::Post.new(uri.path) req["Authorization"] = "key=A...A" # Тут вписывается закрытый ключ req["Content-Type"] = "application/json" res = http.request(req, @keys) parsed_json = ActiveSupport::JSON.decode(res.body) @notification.update_attribute(:success, parsed_json["success"].to_i) end redirect_to notifications_path end

    Этот код, если создано и сохранено новое уведомление (@notification), формирует и передает POST-запрос для Google (точно так же, как мы делали это выше), в котором в формате json по спецификации Google передаются ВСЕ идентификаторы наших подписчиков. Затем нам должен ответить Google своим json’ом. Из которого отпарсивается секция success, из которой сохраняется число - количество успешно переданных пушей. Так же там передается секция failure, в которой, соответственно, хранится число по той или иной причине недоставленных пушей. Вообще, можно самому посмотреть какие данные передает Google, может что-то еще решите сохранить.

    И, как и в прошлый раз, данный код не учитывает, что Google может не ответить, или ответить сообщением об ошибке, а не валидным для парсинга json’ом. Учтите в своей разработке подобные случаи.

    Ну а теперь пробуем создать на своем сайте пуш через форму Notification.new (созданную Скаффолдом) и… ВУАЛЯ! Система работает - нам пришло уведомление!

    Правда содержимое для этого уведомления все еще берется из статичногоlatest.json . Осталось последнее - заставить этот файл обновляться динамически. Как это сделать? Очень просто, ведь у нас уже есть модель Notification, а вlatest.json должно содержаться именно наше последнее Уведомление (то есть Notification.all.last). Для этого удаляем наш статический latest.json из корневой папки сайта и добавляем вroutes.rb следующий маршрут:

    Match "/latest.json", to: "notification#latestpush", via: :get

    То есть теперьlatest.json будет формироваться методомlatestpush в контроллереnotification . Создадим этот метод:

    Def latestpush @push = Pushnotification.all.last render json: "{"notification":{"url":""[email protected]_s+"","title":""[email protected]_s+"","body":""[email protected]_s+""},"_id":"[email protected]_s+"}".as_json end

    Теперь создадим еще одно уведомление через форму Notification.new. И, наконец, мы видим в углу монитора пуш именно с тем содержимым, которое только что вбили в форму.

    Казалось бы, это все? Все, да не совсем. Во-первых, мы сделали подписку, но не сделали отписку - будьте честны и предоставьте посетителям сайта такую возможность. Во-вторых, подписку-то мы сделали, но она пока малоинформативна и показывается всем, а не только пользователям Chrome, для которых подписка и делается. Ну и в-третьих, мы сделали на своем сайте очень интересную игрушку, у которой есть свои правила использования. Вот об этом всем мы и поговорим в следующей, третьей и, наконец-то, заключительной части нашего повествования оChrome push API .

    С так называемыми "пушками" знаком каждый владелец современного смартфона, планшета, ноутбука, компьютера. Кому-то они весьма необходимы для определенной деятельности, кого-то отвлекают и раздражают, для кого-то играют важную роль продвижения чего-либо. Так или иначе, стоит разобраться в их сути, разновидностях и, конечно же, методах избавления от этих назойливых всплывающих окошек.

    Что такое push-уведомления

    Определение интересующих нас уведомлений может быть следующим:

    • краткие всплывающие сообщения на экране гаджета, напоминающие пользователю о важном событии, обновлении в одном из установленных на смартфон приложений;
    • популярный маркетинговый инструмент - именно и значки не только не позволяют пользователю забыть об загруженном на девайс приложении, но и информируют человека о каких-либо новостях, акциях, личных сообщениях и т. д.;
    • разновидность технологии, распространяющей информацию от сервера к пользователям;
    • конкретно для мобильных устройств - окна с краткой информацией, всплывающие в верхней части экрана на заблокированном дисплее;
    • для ПК и ноутбуков (web-push - относительно новое явление) браузерными уведомлениями являются всплывающие окошки на рабочем столе, направленные сайтом, на "пушки" которого пользователь подписался.

    Что такое push-уведомления? Этим вопросом широко стали интересоваться после внедрения корпорацией Apple для iOS 3 сервиса передачи пользователю быстрых уведомлений APNS (Apple Push Notification Service). Стоит отметить, что до "Яблока" технология уже была внедрена Google для Android-устройств - практически на год раньше.

    Мобильное push-уведомление

    Таким образом, для смартфонов от разных корпораций действуют свои определенные сервисы пуш-уведомлений. Кратко коснемся их всех. Как уже говорилось, сервис от "Эпл" называется APNS. Он функционирует также для браузера "Сафари" и OS X. Push-уведомления для iPhone и iPad доступны в следующим многообразии:

    • badges - на значке-иконке приложения в меню появляется кружок-символ с количеством новых уведомлений или иной информацией;
    • banners - в верхней части экрана или на вспыхивающем дисплее в спящем режиме появляется шторка с какой-либо информацией (обычные баннеры исчезают автоматически, а с предупреждениями следует провести определенные действия);
    • audio, audio/banners - о новом событии пользователя оповещает звук-уведомление (можно настроить его появление на пару с баннером).

    Самая первая (2008 год) разработка таковых уведомлений от Google для андроидов называлась C2DM (Cloud to Device Messaging). В 2012 году ее сменила GCM (Google Cloud Messaging). Именно она и позволяет появляться push-уведомлению в приложениях от Chrome. В известной своей открытостью ОС Android нет стандартных форм для "пушек" - они, при согласии на это пользователя, появляются такими, какими их запланировали разработчики того или иного приложения - баннер, подобный айфоновскому, строка в верхней части экрана, окошко в выпадающей "шторке" и т. д.

    • toast - кликабельный 10-секундный баннер в верхней части экрана;
    • live title - значок с числом уведомлений на иконке приложения;
    • raw - произвольная информация от определенной (чаще всего игровой) мобильной программы.
    Пуш-уведомления в браузере

    Отличие таковых push-уведомлений для стационарных ПК и ноутбуков от мобильных одно - сообщения высылаются не от приложения, а от сайта. Ответственны за их отправку сервисы GCM и APNs (от "Гугл" и "Эпл" соответственно).

    Здесь появляется небольшое окошко на рабочем столе поверх других окон с каким-либо текстом - при клике на него пользователь переходит на сайт-адресант этой "пушки". Стандартное компьютерное push-уведомление состоит из заголовка, текста, маленькой картинки и ссылки. Подписаться на такое оповещение просто - при открытии в браузере сайта, который такие уведомления предлагает, появляется всплывающее сообщение, запрашивающее разрешение на отправку "пушек". Оформить подписку можно в разделе вида "Подписаться на новости".

    Отключение push-баннеров в iPhone

    Чтобы избавиться от всех назойливых "пушек" сразу, необходимо ползунком активировать в "Настройках" режим "Не беспокоить". Однако в этом случае вы не услышите и входящий звонок, и уведомление о СМС. Если вы хотите отключить push-уведомления от какого-либо конкретного приложения, то вам пригодится следующая схема: "Настройки" - "Уведомления" - выбор нужной программы. На "Допуске уведомлений" делаете ползунок неактивным.

    Отключение пуш-уведомлений для Android

    Отключение "пушек" на андроидах тоже совсем не сложное: зайдите в "Настройки", затем в "Диспетчер приложений", найдите ту программу, уведомления от которой вам не нужны. Уберите галочку с "Выводить уведомления". Подтвердите свое решение во всплывающем окошке.

    Отключение "пушек" в браузере

    Теперь коснемся того, как отключить push-уведомления на стационарных ПК. Разберем тройку популярных браузеров.

    В Google Chrome это можно сделать так:

    • Зайдите в раздел "Настройки", далее "Показать дополнительные".
    • Здесь в "Личных данных" надо кликнуть на "Настройки контента".
    • Прокрутите раздел до "Оповещений". Здесь надо отметить галочкой "Не показывать оповещения на сайтах", а затем кликнуть на "Готово". Тут также можно задать исключения для "пушек" от любимых сайтов.

    Другой вариант - нажать правой кнопкой мыши на пришедшее вам уведомление и выбрать пункт "Отключить оповещения от..."

    В "Яндекс.Браузере" push-уведомления от "Вконтакте" и "Яндекс.Почты" можно убрать на главной странице "Настроек" в разделе "Уведомления" - "Настроить". Тут нужно просто убрать галочку с "Уведомления включены". Для других сайтов в "Настройках" следует отыскать "Дополнительные настройки", затем "Личные данные" и "Настройку содержимого". В "Уведомлениях" вы можете как отключить все "пушки", так и сделать исключения для некоторых сайтов. В "Сафари" следует зайти в "Настройки" - "Уведомления". Затем найти интересующий сайт и поставить галочку на "Отказать".

    Push-уведомления - одновременно и полезный механизм, позволяющий всегда оставаться в курсе дел и новостей, и система назойливых надоедающих напоминаний о маловажных событиях. С помощью нехитрых инструкций, упомянутых в этой статье, можно раз и навсегда избавиться от "пушек" на своем девайсе.