it-swarm.com.ru

Как веб-приложение может отправлять push-уведомления на устройства iOS?

Я работаю над веб-приложением. Как я могу отправлять Push-уведомления пользователям iOS, когда появляется новый контент?

111
Frankie

Точнее говоря, чтобы веб-приложение отправляло Push-уведомления на мобильное устройство, такое как iPhone, мобильное устройство должно быть зарегистрировано для получения Push-уведомлений для определенного приложения. Регистрация для push-уведомлений осуществляется через собственное приложение и может быть выполнена только через собственное приложение. После регистрации собственного приложения для push-уведомлений оно может отправить токен авторизации на сервер, который может использоваться вместе с сертификатом, используемым для предоставления собственного клиента, для отправки push-уведомлений на мобильное устройство.

Как указано в другом ответе, один из вариантов - "обернуть" ваше веб-приложение в собственное приложение. Это означает, что вы создадите собственное приложение, которое в основном представляет UIWebView (для iPhone dev) пользователю, показывающему ваше веб-приложение. Хотя это в значительной степени работает так же, как и в собственном браузере, вы можете добавить возможность регистрироваться для получения push-уведомлений с помощью встроенных элементов управления.

Было бы полезно ознакомиться с документом push-уведомлений Apple, поскольку в нем содержится довольно хорошая информация о том, как работает функция Push-сообщений на iPhone.

Смотрите эти ссылки, предоставленные Питером Хоси:

89
Kris Babic

Нет, только родные приложения для iOS поддерживают Push-уведомления.

UPDATE:
Веб-сайты Mac OS X 10.9 и Safari 7 теперь также могут отправлять Push-уведомления, но это по-прежнему не относится к iOS. Прочитайте Руководство по программированию уведомлений для веб-сайтов . Также проверьте WWDC 2013 Сессия 614 .

44
Felix

Хотя еще не поддерживается в iOS (начиная с iOS 10), веб-сайты могут отправлять push-уведомления в Firefox и Chrome (для настольных ПК/Android) ) с помощью Push API .

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

Процесс отправки уведомления включает в себя следующее:

  1. пользователь посещает ваш веб-сайт (должен быть защищен через HTTPS): вы запрашиваете разрешение на отображение push-уведомлений и регистрируете работника службы (сценарий, который будет выполняться при получении Push-уведомления)
  2. если пользователь предоставил разрешение, вы можете прочитать токен устройства (конечную точку), который следует отправить на сервер и сохранить
  3. теперь вы можете отправлять уведомления пользователю: ваш сервер отправляет HTTP POST запрос конечной точке (который является URL-адресом, содержащим маркер устройства). Сервер, который получает запрос, принадлежит производителю браузера (например, Google, Mozilla): браузер постоянно подключен к нему и может читать входящие уведомления.
  4. когда пользовательский браузер получает уведомление, выполняется сервисный работник, который отвечает за управление событием, извлекает данные уведомления с сервера и отображает уведомление пользователю

В настоящее время Push API поддерживается на настольном компьютере и Android с помощью Chrome , Firefox и Opera .

Вы также можете отправлять push-уведомления на Apple/ рабочий стол Safari с помощью APN. Подход аналогичен, но со многими сложностями (сертификаты разработчика Apple, Push-пакеты, низкоуровневое TCP соединение с APN).

Если вы хотите реализовать Push-уведомления самостоятельно, начните с этих руководств:

Если вы ищете подходящее решение, я бы предложил Pushpad , это сервис, который я создал.

Обновление (сентябрь 2017 г.): Apple приступил к разработке сервисных работников для WebKit ( status ). Поскольку работники сферы обслуживания являются фундаментальной технологией для веб-Push, это большой шаг вперед.

39
collimarco

Google Chrome теперь поддерживает стандарт W3C для push-уведомлений.

http://www.w3.org/TR/Push-api/

10
BonzaiThePenguin

На самом деле ... это совершенно новый взгляд .. В самой новой версии OS X (Mavericks) вы МОЖЕТЕ отправлять Push-уведомления с веб-страницы на рабочий стол. Но согласно документации, НЕ айфонов:

Note: This document pertains to OS X only. Notifications for websites do not appear on iOS.

В настоящее время Apple планирует разрешить 2 вида push-уведомлений: OS X на веб-сайте Push-уведомления и локальные уведомления.

Очевидным препятствием здесь является то, что это не будет работать на ПК и не позволит вам делать Android Push-уведомления.

Более того, вы можете со старыми версиями Snow Leapord отправлять Push-уведомления с веб-сайта, если указанный веб-сайт открыт и активен. Новая ОС Mavericks будет разрешать Push-уведомления, даже если сайт не открыт, при условии, что вы уже дали разрешение указанному сайту отправлять Push-уведомления.

Из уст Apple:

В OS X v10.9 и более поздних версиях вы можете отправлять push-уведомления веб-сайта OS X с вашего веб-сервера напрямую пользователям OS X с помощью Apple службы push-уведомлений (APN). Не путать с локальными уведомлениями, Push-уведомления могут достигать ваших пользователей независимо от того, открыт ли ваш сайт или их веб-браузер ...

Чтобы интегрировать Push-уведомления на вашем веб-сайте, вы сначала предоставляете интерфейс, который позволяет пользователю получать уведомления. Если пользователь дает согласие, Safari связывается с вашим веб-сайтом и запрашивает его учетные данные в форме файла, называемого Push-пакетом. Пакет Push также содержит ресурсы уведомлений, используемые в OS X, и данные, используемые для связи с настраиваемой веб-службой. Если пакет Push действителен, вы получаете уникальный идентификатор пользователя на устройстве, известный как маркер устройства. Пользователь получает уведомление, когда вы отправляете комбинацию этого токена устройства и вашего сообщения или полезной нагрузки в APN.

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

Примечание. Если вам необходимо обновить APN, прочитайте главу "Служба push-уведомлений Apple" в Руководстве по программированию локальных и push-уведомлений. Хотя документ относится к push-уведомлениям iOS и OS X, парадигмы службы push-уведомлений по-прежнему применяются.

9
Jonathan Nemeth

Вы можете использовать pushover, если не хотите создавать собственное приложение: https://pushover.net/

8
Sam

Нет, веб-приложение не может получать push-уведомления. То, что вы можете сделать, это превратить ваше веб-приложение в нативное приложение с push-уведомлениями.

7
JustSid

W3C создал в 2010 году рабочую группу для реализации уведомлений:
http://www.w3.org/2010/web-notifications/

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

Наконец, результат похож на плохую шутку, поскольку он работает, только если конкретный веб-сайт открыт: http://alxgbsn.co.uk/notify.js/

Я думаю, что они упустили возможность добавить Push-URL, чтобы браузер мог запрашивать уведомления во время работы в фоновом режиме - и, прежде всего, - если все вкладки были закрыты.

2
mgutt

Вы можете использовать HTML5 Websockets для представления своих собственных Push-сообщений. От Википедия :

"Для клиентской части WebSocket должен был быть реализован в Firefox 4, Google Chrome 4, Opera 11 и Safari 5, а также в мобильной версии Safari в iOS 4.2. Также BlackBerry Browser в OS7 поддерживает WebSockets. "

Для этого вам нужен собственный сервер провайдера для отправки сообщений клиентам.
Если вы хотите использовать APN (Apple Push Notification) или C2DM (Cloud to Device Message), у вас должно быть собственное приложение, которое необходимо загрузить через онлайн-магазин.

2
Foyzul Karim

Pushbullet является отличной альтернативой для этого.

Однако пользователю необходимо иметь учетную запись Pushbullet и установленное приложение (iOS, Android) или плагин (Chrome, Opera, Firefox и Windows).

Вы можете использовать API , создав приложение Pushbullet, и подключить пользователя вашего приложения к пользователю Pushbullet с помощью oAuth2.

Использование библиотеки сделало бы это намного проще, для PHP я мог бы рекомендовать ivkos/Pushbullet-for-PHP .

2
Tim

Ознакомьтесь с уведомлениями Xtify Web Push. http://getreactor.xtify.com/ Этот инструмент позволяет помещать контент на веб-страницу и целевых посетителей, а также запускать сообщения на основе событий DOM браузера. Он разработан специально для мобильных устройств.

1
Jeremy