Что такое прогрессивное веб-приложение для iOS [закрыто]


79

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


1
Поздравляю с первым вопросом. Как вы, возможно, знаете, одним из многих требований для прогрессивного веб-приложения (PWA) является поддержка сервис-воркеров в браузере. К сожалению, Safari не поддерживает Service Workers, поэтому единственными альтернативами являются собственные приложения или простой веб-сайт.
Хосе Луис,

1
Вслед за @ JoséLuis PWA должен следовать принципу прогрессивного улучшения и, следовательно, быть обратно совместимым с Safari и iOS. Это означает, что основные функции должны по-прежнему использоваться, а приложение будет постепенно улучшаться по мере того, как новые функции становятся доступными в браузере или ОС.
Кевин Фарруджа

2
Смотрите мой ответ ниже. Я написал статью с призывом к Apple. Это вызвало настоящий переполох в твиттере и хакерских новостях. Через неделю они наконец начали разработку!
Грег Бласс

2
Наконец, Apple добавила поддержку сервис-воркера в свой TP. Вы можете прочитать более о поддержке Сафари PWA здесь medium.com/awebdeveloper/...
aWebDeveloper

1
На самом деле должен сказать, что закрывать это как слишком широкое - это ооочень е #% (#) глупо. Вроде серьезно! Почему? Зачем закрывать такой важный вопрос? Просто взрывает мой мозг.
Грег Бласс

Ответы:


97

Имейте в виду, что «браузеры, поддерживающие прогрессивные веб-приложения» - это не настоящий термин, сам PWA - это набор функций, которые веб-приложение может предоставить пользователям. Так что дело не только в Service Worker и App Manifest.

Отъезд: Контрольный список для базовой PWA .

Вот что вы можете сделать для достижения PWA в iOS / Safari в момент создания этого ответа:

  • Сайт обслуживается по HTTPS ✅
  • Страницы адаптируются на планшетах и ​​мобильных устройствах ✅
  • Стартовый URL (по крайней мере) загружается в автономном режиме 🚫
  • Метаданные, предоставленные для добавления на главный экран ✅❗️
  • Первая загрузка быстрая даже по 3G ✅
  • Сайт работает кроссбраузерно ✅
  • Переходы между страницами не кажутся заблокированными в сети ✅
  • У каждой страницы есть URL ✅

Как видите, почти все работает, даже если ваша страница не может работать в автономном режиме в iOS / Safari, все равно есть огромное преимущество «обновления» вашего веб-приложения до PWA.

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

Примечание о «Добавить на главный экран: Safari имеет свою собственную спецификацию для« значка главного экрана », вызываемого apple-mobile-web-app-capableв метатегах. Генератор манифестов веб-приложений имеет запасной вариант для iOS, использующий эти метатеги.


7
С вышеупомянутыми функциями и без «Service Workers» вы просто разрабатываете быстрое и отзывчивое веб-приложение! Родные приложения намного больше !!
Абхишек Налин

1
Пользователь downvote спросил об iOS, ответ настолько общий
Фарид Алнамрути

Метаданные, предоставленные для добавления на главный экран ✅❗️ Не работают. Вы можете уточнить?
Profer

76

РЕДАКТИРОВАТЬ 3:

Сервис-воркеры выпустили Safari для iOS 30 марта 2018 года!

РЕДАКТИРОВАТЬ 2:

Разработчик Apple по имени Рики Монделло написал об этом в Твиттере 24 января 2018 года:

https://twitter.com/rmondello/status/956256845311590400

«iOS 11.3 и macOS 10.13.4 включают Service Workers - мощную спецификацию, которая позволяет фоновым скриптам использовать автономные веб-приложения. iOS 11.3 также обращается к манифесту веб-приложений при добавлении веб-приложений на главный экран».

Потрясающе!

О push-уведомлениях пока нет, но все же отличные новости.

РЕДАКТИРОВАТЬ:

Я написал статью об Apple по этой теме:

https://m.phillydevshop.com/apples-refusal-to-support-progressive-web-apps-is-a-serious-detriment-to-future-of-the-web-e81b2be29676

Он был опубликован в хакерских новостях и получил хорошие отзывы в Твиттере. Через неделю приступили к разработке. Итак - следите за обновлениями, похоже, он наконец-то в пути!


ОРИГИНАЛЬНЫЙ ОТВЕТ:

«Так что дело не только в Service Worker и App Manifest».

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

Вот список вещей, которые вы по-прежнему не можете делать с мобильным сафари из-за отказа Apple их поддерживать (потому что они потеряют деньги в магазине приложений):

  • Создайте экран загрузки приложения
  • Использовать push-уведомления
  • Добавить офлайн-поддержку
  • Создайте начальный пользовательский интерфейс приложения для мгновенной загрузки
  • Быстрая установка на главный экран через диалог в браузере

Принятый ответ действительно рисует здесь неверную картину. Я довел яблочный «родной» опыт в мобильном сафари до предела, и это все еще очень плохо. У меня было множество проблем с полноэкранным режимом мобильного сафари, и Apple их просто не волнует. С ним обращаются как с гражданином второго сорта, потому что он не приносит денег, как магазин приложений.

Вы заметите, что если вы добавите новый и потрясающий мобильный сайт Twitter на основе реакции / сокращения на домашний экран в iOS, он не откроется в полноэкранном режиме. Я подозреваю, что это по тем же причинам, что и я, - множество ошибок, и никто из команды Apple не работает над ними.

Экран загрузки, который когда-то был возможен в полноэкранном режиме iOS, который был доступен в манифесте веб-приложения, загадочным образом перестал работать, без каких-либо комментариев от Apple на их форумах к сообщениям по этой теме. И необходимость говорить пользователям: «Эй, просто нажмите« Поделиться », а затем перейдите к« Добавить на главный экран »» - это ужасный способ начать что-то.

Это печальное положение дел. Список в текущем принятом ответе действительно должен называться «Базовый список адаптивных веб-приложений».

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

Я только что потратил 6 месяцев на изучение React Native для клиентского проекта, и это было потрясающе. Я очень рекомендую это. Вы можете создавать действительно нативные приложения, используя JavaScript, и делиться своей кодовой базой между iOS и Android.

Чтобы было ясно, я не против Apple. Я использую iPhone и занимаюсь разработкой на Mac. Но этот аспект их бизнес-стратегии, безусловно, позор.


1
Я считаю Swift / Xcode самым простым языком / IDE для использования на рынке. Они создали современный язык разработчика и новую парадигму протокольно-ориентированного программирования, которая решает многие проблемы, связанные с множественным наследованием. Тот факт, что они не пытались расширить его использование за пределы собственных продуктов, - позор, но называть его более сложным, чем TypeScript / JavaScript, было бы ошибкой. Я думаю, что TypeScript - уродливая повязка на уродливом языке. Я бы хотел, чтобы веб-браузеры вместо этого говорили быстро.
Ryan Dines

Кто-то упомянул мне то же самое в моей статье. Я отредактировал его, чтобы он был более подробным. Но вы правы - я, наверное, предвзято исхожу из Интернета. Но команды Facebook смогли выполнить итерацию в Интернете в 5 раз быстрее, чем нативные приложения, поэтому они сделали React Native - так что я думаю, что в этом есть определенная заслуга.
Грег Бласс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.