«Добавить на главный экран» (A2HS) — функция iOS, присутствующая с момента первого выпуска iPhone. Однако пользователям никогда было особенно понятно, как это сделать (или зачем вообще это нужно).
Вскоре в iOS 16.4 iOS получит поддержку push-уведомлений, но не для любого веб-сайта. Это работает только в том случае, если вы «установили» веб-приложение как «приложение» через A2HS.
Так что, по-моему, имеет смысл, чтобы Discourse объяснял пользователям, как выполнить A2HS, а затем зарегистрироваться для получения push-уведомлений.
В iOS 16.4 для регистрации push-уведомлений необходимо:
Прокрутить страницу, чтобы открыть строку URL.
Нажать кнопку «Поделиться» (без подписи, значок квадрата со стрелкой вверх).
Прокрутить окно «Поделиться», чтобы найти кнопку «Добавить на главный экран» (причём не очевидно, что это окно можно прокручивать!).
Нажать на «Добавить на главный экран».
Нажать кнопку «Добавить» в правом верхнем углу (желательно без переименования приложения).
Вернуться на главный экран, найти только что созданный значок нового приложения (он может находиться на втором главном экране, поэтому, возможно, придётся искать его по имени, например, «Meta») и нажать на него.
Войти в систему снова. (PWA, добавленная через A2HS, не разделяет файлы cookie с Safari, поэтому, если вы входите через Facebook, вам также потребуется войти в Facebook заново, включая двухфакторную аутентификацию и опцию «Доверять этому браузеру».)
Нажать на баннер для регистрации push-уведомлений.
Пользователям будет крайне сложно разобраться во всём этом!
Discourse должен предоставить ссылку с инструкцией, как выполнить A2HS и зарегистрироваться для получения push-уведомлений, желательно с включением видеоурока, наглядно демонстрирующего каждый шаг.
Более того, одного видеоурока будет недостаточно. Многое зависит от того, используете ли вы iPhone или iPad, есть ли у вашего устройства кнопка «Домой» и т. д.
Тем не менее, я считаю, что такая функция значительно облегчит привлечение пользователей к push-уведомлениям.
Поскольку Apple отключила событие beforeinstallprompt, на их платформе это действительно довольно сложно.
Это станет проблемой для каждого веб-приложения, поэтому мы можем перенять опыт других и попробовать использовать то, что привычно для пользователей.
Те, кто стремится внедрить эту функцию, могут поэкспериментировать с компонентом темы, чтобы помочь пользователям найти соответствующую функциональность.
Возможно, промежуточным шагом для проверки реакции станет компонент темы?
Можно реализовать всплывающее диалоговое окно с возможностью закрытия, которое проведет пользователя через процесс настройки. Предполагаемые открытые вопросы:
Может ли iOS определить, что приложение запущено в режиме PWA или нет?
Каким должен быть механизм «напоминания пользователям о PWA»? (Сколько времени ждать? Как часто напоминать? Требуется ли, например, уровень TL1 у пользователя?)
Да, и у нас уже есть для этого метод в sniff-caps.
В Android уже есть баннер, который появляется для пользователей с уровнем TL1 и выше.
Выбор «Нет» сохраняется в локальном хранилище.
Основная проблема здесь в том, что Apple была вынуждена поддержать это против своей воли, поэтому нажатие на кнопку установки не запустит процесс установки. Всё, что мы можем сделать, — показать модальное окно с инструкцией о том, как это работает. Пока нет консенсуса в сообществе относительно внешнего вида этого модального окна.
Это распространённое заблуждение. Флаг функции «Push API» в версии 16.4 ничего не делает. Push API работает из коробки и включён по умолчанию в iOS 16.4 (но только после добавления сайта на главный экран).
(Я предполагаю, что в будущем этот флаг может когда-нибудь включить веб-уведомления напрямую в Safari без добавления на главный экран, но такой функции сегодня не существует, поэтому включение или выключение флага ничего не меняет.)
Попробуйте сами! Вы получите уведомление, даже если флаг отключён.
Не забудьте выполнить все шаги, которые я описал выше. Нажмите на A2HS PWA, войдите в систему и затем включите уведомления через баннер. Вы сразу же получите тестовое push-уведомление.
Как мы уже установили в другой теме, эта настройка не относится к Web Push и на самом деле присутствовала в экспериментальных настройках ещё с версии iOS 15.4.
После добавления PWA пользователям достаточно просто снова войти в систему, а затем включить уведомления в своём профиле внутри PWA.
Один из моментов, с которым я не согласен, заключается в том, что приложение Discourse Hub всё ещё немного превосходит PWA:
Несколько сайтов в одном
Уведомления для всех наших размещённых клиентов
Нет необходимости повторно входить в систему благодаря протоколу передачи авторизации
Ссылка для обмена в футере вместо просто кнопок «назад/вперёд»
Проще установить (возможно)
Тем не менее… это, безусловно, отличный прогресс! Это очень удобно
Это окончательно подтверждает, что эксперимент с громкими напоминаниями и обучающими элементами должен быть реализован в виде компонента темы (с опциональным режимом: обучение о Hub или обучение о PWA). Также возникает вопрос: можно ли для Hub просто использовать веб-уведомления для самохостинга?
На мой взгляд, единственное преимущество Discourse Hub на данный момент — это простота установки (или изучения процесса установки). Discourse Hub — это приложение, и все знают, как устанавливать приложения. В Hub вам нужно будет просто вставить URL форума, но интерфейс проведёт вас через весь процесс шаг за шагом. В то же время процесс A2HS для iOS … практически неочевиден. (Отсюда и эта тема!)
«Несколько сайтов в одном» на самом деле является недостатком, на мой вкус. (Но если это вас интересует, теперь можно переписать Discourse Hub как PWA! )
«Push-уведомления для всех наших хостинговых клиентов» относится и к Web Push, верно? И даже клиенты без хостинга получают мгновенные push-уведомления через Web Push в iOS 16.4, тогда как при добавлении форумов без хостинга в iOS Discourse Hub приходилось бы периодически опрашивать их, что вносило бы задержки.
«Нет необходимости входить в систему второй раз» … Я просто использую «Вход через Apple», и могу сказать, что опыт использования A2HS с Web Push ничем не уступает тому, что был в Discourse Hub. Я нажимаю «Войти», Apple сканирует моё лицо, и я внутри.
«Поделиться ссылкой в футере» — уверен, что я никогда этим не пользовался!
Ну, отчасти да, но мы потеряем часть интерфейса: функцию «свернуть» в режим просмотра всего (треугольник вниз) придётся реализовать в другом месте. Не думаю, что у вас есть контроль над кнопками в нижнем колонтитуле?
Кроме того, это откроет ящик Пандоры, так как нам придётся проверять, какие сайты разрешены в «веб-хабе», а какие — нет. Это создаст постоянную нагрузку, учитывая, что в сети уже насчитывается более 37 тысяч сайтов.
Да… в идеале Apple должна предоставить нам API, чтобы мы могли полагаться на веб-push из приложений, и нам больше не нужно было бы выступать посредником в доставке уведомлений.
На самом деле мы частично заблокированы здесь, пока не внесём изменения в нашу внутреннюю систему аутентификации. Если у вас включена двухфакторная аутентификация, вы не можете использовать стороннюю аутентификацию. Мы не разрешаем использовать оба метода одновременно, и у нас есть внутренняя политика, согласно которой у всех сотрудников 2FA должна быть включена как для dev, так и для meta. Мы изменим это… но не на этой неделе.
Сегодня мы выпустили официальный компонент темы, который будет отображаться для пользователей iOS на iPhone или iPad, побуждая их установить Форум на главный экран в качестве PWA.
Я продолжил обсуждение в теме, посвященной компоненту темы. Я согласен, что разумнее, чтобы текст по умолчанию указывал на то, что для работы push-уведомлений требуется A2HS.