Як веб-додаток може надсилати push-сповіщення на пристрої iOS? [зачинено]


121

Я працюю над веб-додатком. Як я можу надсилати push-сповіщення користувачам iOS, коли з’являється новий вміст?


А яке сповіщення зараз?


Ви шукаєте звук? Потім, якщо ви хочете отримати звукове сповіщення, коли мобільний телефон заблокований; її назва - специфічний Push.
mrbengi

Відповіді:


93

Щоб бути більш конкретним, для того, щоб веб-додаток надсилав push-повідомлення на мобільний пристрій, наприклад, iPhone, мобільний пристрій повинен бути зареєстрований для отримання push-сповіщень для певної програми. Реєстрація для push-сповіщення здійснюється через нативну програму і може здійснюватися лише через нативний додаток. Після реєстрації нативного додатка для push-сповіщення він може надіслати маркер авторизації на сервер, який може використовуватися разом із сертифікатом, що використовується для надання рідного клієнта, для надсилання push-повідомлень на мобільний пристрій.

Як зазначено в іншій відповіді, одним із варіантів є «загортання» веб-програми у власну програму. Це означає, що ви створите нативну програму, яка в основному представляє користувачеві, що показує вашу веб-програму, UIWebView (для iPhone Dev). Хоча ця функціональна частина функціонує так само, як і власний веб-переглядач, ви зможете додати можливість зареєструватися для push-сповіщень за допомогою нативної функції керування.

Вам було б корисно переглянути документ про push-сповіщення Apple, оскільки він надає досить гарну інформацію про те, як функція push-messaging на iPhone.

Дивіться ці посилання, надані Пітером Хосі:


Дякую за цю відповідь, я шукав те саме. Чи застосовується це також, коли ви додали метатег "apple-mobile-web-app-enable"?
Марк Кнол

1
Це змінює те, як трапляються push-сповіщення developers.google.com/web/updates/2015/03/…
Daniel Luca CleanUnicorn

1
станом на 02/2016, FF, Chrome і Safari можуть зареєструватися для натискання від webapp.
Івон Хуйн

9
Це вже не вірно в 2016 році, ви можете надсилати сповіщення з веб-додатків. Прочитайте мою відповідь нижче.
collimarco

Але веб-перегляд не працює чудово, він втрачає деякі функції та має більше помилок, ніж сафарі
Чорний

46

Ні, лише нативні програми iOS підтримують push-сповіщення.

ОНОВЛЕННЯ:
Веб-сайти Mac OS X 10.9 та Safari 7 також можуть надсилати push-сповіщення, але це все ще не стосується iOS. Прочитайте Посібник з програмування сповіщень для веб-сайтів . Також ознайомтесь із сесією 614 WWDC 2013 .


1
тепер ви можете на Maverix & Safari 7!
themihai


Safari 7 впевнений, що може отримувати ці push-сповіщення, і залежно від того, на якому сервері працює ваш веб-додаток, є кілька сервісів, які це дозволяють: pushwoosh.com , pushmonkey.launchrock.com або ви могли розгорнути власний сервер, який дуже схожий на Натисніть сповіщення iOS.
Тудор

Я чув, що це називається специфічним Push.
mrbengi

3
ОП питання стосується конкретно iOS. Підтримка OSX / macOS для цього приємна, але push-сповіщення все ще працюють лише на iOS з нативного додатка.
squarecandy

44

Поки ще не підтримується на iOS (як на iOS 10), веб-сайти можуть надсилати push-повідомлення Firefox та Chrome (Desktop / Android) за допомогою API Push .

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

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

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

Push API в даний час підтримується на робочому столі і Android з допомогою Chrome , Firefox і Opera .

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

Якщо ви хочете самостійно реалізувати push-сповіщення, почніть з цих навчальних посібників:

Якщо ви шукаєте краплі рішення, я б запропонував Pushpad , який я створив.

Оновлення (вересень 2017 року): Apple розпочала розробку сервісних службовців для WebKit ( статус ). Оскільки сервісні працівники є фундаментальною технологією для веб-натискань, це великий крок вперед.


3
Станом на iOS 10 (бета-версія), Mobile Safari не підтримує push-сповіщення.
Робін Догерті

1
Це не була корекція вашої відповіді, я надав інформацію людям, які шукають підтримки Safari Mobile. Колись, можливо, вони підтримуватимуть push-сповіщення, але вони не стають з моменту, про який я згадував.
Робін Догерті

14
Safari - новий Internet Explorer. Apple - новий Microsoft. Тьфу ....
Коста

1
@Kevincore Ні, на жаль, оновлень немає. На даний момент Safari на iOS не підтримує веб-натиск (травень 2017).
колимарко

1
Давайте тиснемо на Apple: я написав кілька абзаців, які ви можете скопіювати та подати в Apple Bug Tracker, щоб попросити Apple додати веб-натиск до iOS.
collimarco

10

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

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


Ось ґрунтовний підручник: developers.google.com/web/updates/2015/03/…
ayke

1
Чи включає це Chrome для iOS? (Первісне питання було специфічним для iOS)
Simon East

Наразі немає жодного iOS. Доведеться користуватися нативним додатком: \
rogerdpack


9

ПОСТІЙНО. Це абсолютно новий розум. На останній версії OS X (Mavericks) ви МОЖЛИ надсилати push-повідомлення з веб-сторінки на робочий стіл. Але згідно з документацією, НЕ iPhone:

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

В даний час компанія Apple планує дозволити два види натискання сповіщень: Push-повідомлення про веб-сайт OS X та місцеві сповіщення.

Очевидне перешкода тут полягає в тому, що це не працюватиме на ПК, і це не дозволить вам робити Android-push повідомлення.

Крім того, ви можете фактично з версіями, старими як Snow Leapord, надсилати push-повідомлення з веб-сайту до тих пір, поки зазначений веб-сайт відкритий і активний. Нова ОС Mavericks дозволить надсилати сповіщення, навіть якщо сайт не відкритий, якщо ви вже дали дозвіл вказаному сайту надсилати push-сповіщення.

З вуст Apple:

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

Щоб інтегрувати push-сповіщення у свій веб-сайт, ви спочатку представляєте інтерфейс, який дозволяє користувачеві увімкнути отримання сповіщень. Якщо користувач погоджується, Safari зв’язується з вашим веб-сайтом, вимагаючи його облікових даних у вигляді файлу, який називається push пакет. Пакет push також містить активи сповіщень, використовувані в OS X, і дані, що використовуються для спілкування з веб-службою, яку ви налаштували. Якщо пакет push є дійсним, ви отримуєте на пристрої унікальний ідентифікатор, відомий як маркер пристрою. Користувач отримує сповіщення, коли ви надсилаєте до APN-кодів комбінацію токена цього пристрою та повідомлення чи корисне навантаження.

Отримавши сповіщення, користувач може натиснути на нього, щоб відкрити обрану веб-сторінку в браузері за замовчуванням користувача.

Примітка: Якщо вам потрібно оновити APN, прочитайте розділ "Служба повідомлень Apple Push" в Посібнику з локального та Push Notification Programming. Хоча документ характерний лише для push-сповіщень iOS та OS X, парадигми служби push-сповіщення все ще застосовуються.


5
Це, сподіваємось, означає, що ми побачимо веб-натискання сповіщень iOS 8 або 9. Тримаючи пальці схрещеними.
Тревіс

5
Документи розробника прямо говорять про те, що веб-сповіщення зараз не застосовуються до iOS. Так само як уточнення вашого першого абзацу.
Даніель Продавці

1
Знаючи яблуко, вони дозволять використовувати його для однієї версії iOS і видаляти її для наступної
Олександр Дерк

6

Ні, немає жодного способу, щоб веб-передавач отримав спонукальне сповіщення. Що ви можете зробити, це перетворити свій веб-сайт в нативну програму, яка має push-сповіщення.


що ви маєте на увазі, коли ви говорите "загорніть свій веб-сайт у рідний додаток"?
Френкі

1
Френкі: Ну, просто рідний додаток, який відображає UIWebView, який потім завантажує ваш сайт. Це дозволяє вам мати свій веб-сайт як рідний додаток на телефоні.
JustSid

тому я думаю, що в xcode це буде "WindowBase Aplication" для нативного додатка, правда?
Френкі

тепер ви можете на Maverix & Safari 7!
themihai

1
@DanDascalescu Чому б я? Це все ще НЕ можливо на IOS, яка є те , що мова йшла про. Відповідь невірна.
JustSid

2

W3C у 2010 році створила робочу групу з впровадження сповіщень:
http://www.w3.org/2010/web-notifications/

Ця Робоча група розробляє API, які розкривають ці механізми для веб-додатків, щоб веб-розробники, що створюють, наприклад, веб-клієнти електронної пошти та клієнти миттєвих повідомлень, могли більш тісно інтегрувати свою поведінку веб-додатків із функціями сповіщення операційних систем своїх кінцевих споживачів.

Зрештою, результат схожий на поганий жарт, оскільки він працює лише у тому випадку, якщо конкретний веб-сайт відкритий: http://alxgbsn.co.uk/notify.js/

Я думаю, що вони пропустили реалізацію можливості додавати push-адреси, щоб браузер міг запитувати повідомлення під час роботи у фоновому режимі - і перш за все - якщо всі вкладки були закриті.


2

Ви можете використовувати веб-розетки HTML5 для введення власних push повідомлень. З Вікіпедії :

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

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


6
добре, це буде працювати лише в тому випадку, якщо браузер відкриється і на сторінці webapp. на відміну від push-сповіщень, які працюють навіть тоді, коли додаток вимкнено.
Хагай L

2

Відмінною альтернативою для цього є Pushbullet .

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

Ви можете використовувати API , створивши додаток Pushbullet і підключивши користувача програми до користувача Pushbullet за допомогою oAuth2.

Використання бібліотеки полегшило б роботу PHP, я можу порекомендувати ivkos / Pushbullet-for-PHP .


1

Перевірте сповіщення Xtify Web Push. http://getreactor.xtify.com/ Цей інструмент дозволяє пересувати вміст на веб-сторінку та націлювати відвідувачів, а також запускати повідомлення на основі подій DOM браузера. Він розроблений спеціально з урахуванням мобільних пристроїв.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.