Для тех из нас, кто ждал этого, в первую очередь чтобы наши экземпляры Discourse лучше работали на iOS, похоже, этот день уже близко: Apple официально объявила сегодня о поддержке веб-уведомлений в iOS 16, которая появится в 2023 году.
Завтра состоится презентация по этой теме:
Здесь есть немного больше подробностей о реализации.
https://webkit.org/blog/12824/news-from-wwdc-webkit-features-in-safari-16-beta/
Web Push появится в Safari 16 на macOS Ventura. Это позволит удалённо отправлять уведомления пользователям ваших веб-сайтов и веб-приложений — и доставлять эти уведомления даже когда Safari не запущен. Для этого используется тот же набор веб-стандартов, с которым вы, возможно, уже знакомы по другим браузерам: Push API и Notifications API, а также Service Worker.
Пользователи дают согласие на получение уведомлений, сначала проявив интерес через действие пользователя — например, нажав кнопку. Затем им будет предложено предоставить разрешение вашему сайту или приложению на отправку уведомлений. Пользователи смогут просматривать и управлять уведомлениями в Центре уведомлений, а также настраивать их внешний вид и отключать уведомления для каждого сайта в настройках уведомлений.
Если вы уже реализовали Web Push для своего веб-приложения или сайта, следуя лучшим отраслевым практикам, это автоматически заработает в Safari. Однако, если вы исключали Safari с помощью детектирования браузера, вам нужно будет перейти к детектированию функций, чтобы всё заработало.
Web Push в Safari использует тот же сервис Apple Push Notification, который обеспечивает нативные push-уведомления на всех Mac и устройствах iOS. Если вы строго управляете точками получения push-уведомлений на своём сервере, обязательно разрешите URL-адреса из любых поддоменов push.apple.com. Вам не обязательно быть участником программы Apple Developer.
И ожидайте появления Web Push для iOS и iPadOS в 2023 году.
В Safari на macOS нестандартные веб-push-уведомления существуют с 2013 года, но ранее они никогда не работали на iOS.
Это объявление, похоже, указывает лишь на то, что Safari на macOS перейдёт на стандартный API в Safari 16, что, конечно, хорошо, но если вам нужны были push-уведомления в Safari на macOS, вы уже можете реализовать их сегодня.
Поддержка iOS станет настоящим прорывом.
Благодарю за более подробную информацию по этому вопросу!
Не знаете ли вы или кто-то ещё, как это повлияет на экземпляры Discourse? Предполагаю, что это означает, что при сохранении веб-сайта на главный экран пользователь сможет получать уведомления от этого PWA Discourse. Так ли это?
Также позволит ли это DiscourseHub отправлять push-уведомления на iOS всем экземплярам Discourse, входящим в него?
Нет, эта функция не имеет ничего общего с установкой на главный экран или «PWA».
«PWA» — это своего рода маркетинговый термин, придуманный разработчиками из Google; он относится к набору функций:
- Добавление на главный экран (A2HS)
- Поддержка работы в автономном режиме, чтобы сайт/приложение продолжало работать без подключения к интернету
- Функции, похожие на нативные (функции, которые ранее были доступны только в нативных приложениях), включая push-уведомления, Bluetooth, фоновую загрузку и т. д.
Однако эти функции не имеют между собой никакой внутренней связи. Вы можете использовать любую из них независимо от остальных.
- Любой веб-сайт можно добавить на главный экран. Для этого веб-странице не обязательно иметь поддержку автономного режима или функции, похожие на нативные. (По сути, это просто добавление закладки на главный экран; именно это и делает A2HS.)
- Вы можете включить поддержку автономного режима для своего веб-сайта независимо от того, используете ли вы A2HS или нет.
- Нет таких функций, похожих на нативные, которые требовали бы использования A2HS или поддержки автономного режима. WebBluetooth работает на любой веб-странице, если пользователь соглашается с диалоговым окном «разрешений»; для её включения не требуется использовать A2HS.
Сегодня в Google Chrome и в текущей версии macOS Safari 15 веб-сайты могут выводить небольшое диалоговое окно с запросом разрешения на отправку push-уведомлений. (Это нужно делать в обработчике события «клик» или в ответ на другое действие пользователя, например перетаскивание или свайп.) Вы, вероятно, уже видели такие всплывающие окна на новостных сайтах.
В сообщении блога Apple, по-видимому, указывается, что в Safari 16 ничего не изменится в отношении запроса разрешения:
Пользователи дают согласие на получение уведомлений, сначала выражая интерес с помощью действия пользователя — например, нажатия кнопки. Затем им будет предложено предоставить разрешение вашему сайту или приложению на отправку уведомлений.
Этот вопрос запутанный. Discourse Hub уже делает это сегодня.
Кажется, у меня были проблемы с настройками уведомлений на iPhone, из-за чего они не приходили:
Отлично! Значит, люди всё ещё могут получать уведомления без A2HS. Звучит здорово, спасибо.
У меня сложилось впечатление, что уведомления iOS в приложении Discourse Hub работают только для экземпляров Discourse, размещенных командой Discourse, как указано в сообщении ниже. Это изменилось?
Как объясняется в связанной вами теме, Discourse Hub может отправлять уведомления для любого сайта Discourse, даже если он не размещён командой Discourse, однако мгновенные (live) уведомления он отправляет только для сайтов, размещённых командой Discourse. Если вы добавите в Discourse Hub сайт, не размещённый ими, вы всё равно будете получать уведомления, но с задержкой.
Тем не менее, я не думаю, что вопрос был именно об этом, хотя, возможно, я что-то неправильно понял:
Discourse Hub уже может отправлять push-уведомления на iOS для из всех экземпляров Discourse в нём. Сайты, не размещённые командой Discourse, отправляют уведомления с задержкой, но уведомления всё же приходят.
Ах, я действительно надеялся, что сайты с самостоятельным хостингом смогут отправлять уведомления мгновенно. Возможно, задержка в получении уведомлений и сбила меня с толку, и я не мог понять, отправляются ли они сейчас.
Тем не менее, я рад, что iOS 16 должна включить возможность мгновенных уведомлений для сайтов Discourse с самостоятельным хостингом ![]()
Спасибо за уточнение. Меня в основном интересуют живые push-уведомления для iOS, а не уведомления, получаемые через опрос.
“WKWebView” — это API от Apple для встраивания веб-браузера в нативное приложение; Discourse Hub использует WKWebView. Насколько мне известно, существующие сегодня проприетарные push-уведомления Safari 15 на macOS не работают в WKWebView на macOS.
Apple предоставляет некоторые функции, похожие на нативные, только в приложении Safari, а не в WKWebView, а иногда даже не в веб-страницах, добавленных на главный экран, которые технически работают в отдельном процессе “Web.app” на iOS.
Мы пока не знаем, будет ли работать новый стандартный Push API в WKWebView (поэтому не знаем, будут ли они работать в Discourse Hub), и тем более не знаем, будет ли Push API работать в WKWebView на iOS, который даже не выйдет в 2022 году.
Однако ожидается, что завтра на презентации появится ещё немного информации.
Кстати, для представителей Apple обычно характерно отказываться публично отвечать на дополнительные вопросы о функциях, похожих на нативные, в веб-среде.
Возьмём, к примеру, этот вопрос, заданный в Twitter:
В течение дня Apple отвечала на вопросы Максимилиано, но, э-э, по какой-то причине именно этот вопрос остался без ответа! ![]()
Ох, как же мне нравится такой уровень детализации, спасибо, что всё расписали. Будем надеяться, что это сработает в WKWebView на iOS и в приложениях с экрана «Домой» ![]()
Рада видеть, что я не единственная, кто следил за этой презентацией. ![]()
Не понимаю, почему эта функция не появится в первом выпуске iOS 16, но что поделать…
Разве это уже не было доступно в macOS? Я уже несколько лет получаю уведомления Safari с MacRumors. Возможно, они использовали какое-то обходное решение? ![]()
Как я уже писал в своём предыдущем сообщении:
Ах, извините. Я не совсем понял, что вы имели в виду. ![]()
В сегодняшнем видео было очень мало подробностей. Meet Web Push for Safari - WWDC22 - Videos - Apple Developer
Сегодня на блоге WebKit появилась публикация.
Здесь доступно немного больше информации.
https://developer.apple.com/documentation/usernotifications/sending_web_push_notifications_in_safari_and_other_browsers
В зале отдыха Safari во время WWDC пользователь по имени «Джон» задал вопрос: «Будет ли работать веб-уведомления в экземплярах WKWebView?». Ответ от представителя Apple по имени «Брейди И.» был следующим:
В macOS Ventura поддержка веб-уведомлений доступна только в Safari 16.
Джон уточнил: «А как насчет iOS/iPadOS?», на что Брейди ответил: «Ожидайте поддержку iOS/iPadOS в 2023 году». Таким образом, сегодня никаких вопросов о поддержке iOS не было.
Мне кажется крайне маловероятным, что веб-уведомления будут работать в WKWebView в 2023 году, особенно на iOS, поэтому я ожидаю, что веб-уведомления Safari не принесут прямой пользы для Discourse Hub.
Однако, конечно, приложение Discourse Hub станет гораздо менее важным, когда веб-уведомления Safari будут внедрены.
Спасибо, что связались с Apple по этому вопросу и оставили здесь своё дополнение ![]()
У приложения Discourse Hub есть и другие преимущества.
В остальном вы в основном правы. Оно довольно скоро станет частично устаревшим. Интересно, откажется ли CDCK от него полностью… ![]()

Кстати, планов отказываться от мобильного приложения нет. Оно по-прежнему очень полезно для агрегации всех ваших сайтов Discourse и уведомлений в одном месте, отдельно от получения уведомлений в реальном времени.
Имеет ли смысл перенести Discourse Hub в веб в виде PWA?
К сожалению, это сейчас не входит в наш план, но я лично очень хотел бы это увидеть — отличная идея ![]()
