Как стать автором
Обновить

Как сделать из сайта приложение и выложить его в Google Play за несколько часов. Часть 1/2: Progressive Web App

Время на прочтение8 мин
Количество просмотров97K
Всего голосов 52: ↑52 и ↓0+52
Комментарии31

Комментарии 31

Спасибо, не знал)

PWA до сих пор не работают нормально с куками/storage в ios/safari в текущей версии, в итоге контекст теряется. Пахнет яблоками и саботажем.

А что именно не работает? Я не встречал проблем.

А именно — при переключении в другой апп и обратно — теряется localstorage, а вместе с ним и сессия/токен/вотева. iOS 12.3
Есть же IndexedDB.

Только что проверил в iOS 12.2 – ничего не теряется. Вечно эти обновления всё ломают((

В 12.2 другой прикол — external auth redirect, например OAuth2, уходит в браузер, а не в PWA

Работают ли пуш нотификейшн в айосе?

service-worker.js может быть и пустым, верно? Например, если моё приложение не может функционировать офлайн?
И что насчёт стандартного браузерного кеша, ведь он же должен работать как обычно? Зачем тогда мы повторно реализуем кеширование в service-worker.js?

Нет, не может. Install и activate должны отработать. А вот почему стандартный кеш не используется – хороший вопрос. Скорее всего просто потому, что сервис-воркер так сделан. Извините за банальщину.

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

Посыл ясен, но приложение бывает и на компьютере тоже)

Согласен, рассуждение не строгое)

Если это туториал, а не перевод с англ. то хорошо бы ориентироваться на 'нашу' публику, а не иностранцев.
Буду ждать продолжения.
Реально интересует связка с гугл плеем.
P.s. — Хотя первоисточники рулят на ангельском*…

И да, ничего не упомянуто про develop-environment по запуску локального вэб-сервера. Имхо на таких деталях кто-то посыпется… На худой конец ссылочку прикрепить по данному моменту.
Если это туториал, то по нему должно получиться выполнение задания, иначе это просто статья.

Я запускал даже на статическом сервере (webpack-dev-server). Главное, файлы по нужным урлам отдать, как написано в статье.


Ну и есть одна тонкость, её тоже указал:
"Во-первых, если вы запускаете сайт локально, а вам придётся это делать во время разработки и тестирования, то нужно использовать домен localhost и никакой другой. Благодаря этому будет удовлетворено требование «Use HTTPS», а точнее Lighthouse просто закроет глаза на него, и вы сможете полноценно тестировать свой PWA."

Да, это не перевод. А почему возникло впечатление, что ориентируюсь на иностранцев? Из-за ссылок в конце?

Вот тут диссонанс возникает.
Язык английский, а текст русский
<html lang="en"
<title Скорочтец
Спасибо, поправил)

Я понимаю что не всем нужны пуши в приложениях, и статья про андроид, но пока в айос нет возможности отправить пуш уведомления, ценность pwa сильно под вопросом

Ждём)

Я два года ждал когда они добавят MSE. Не дождался.

Возможно забегаю вперед, а как работает монетизация? Будет использоваться adsense для web сайтов или мобильный?
Не монетизируюсь через рекламу, поэтому не подскажу.
Если в андроиде не стоит настройка «разрешить установку сторонних приложений» то баннер с подпиской не появляется. Я правильно понимаю, что нужно через preventdefault делать собственную кнопку? Либо приложение PWA можно как-то прописать в доверенные гугла?
Собственную кнопку можно сделать, как показано для iOS, например. А вот насчёт доверенных не знаю.
Можно ли как-то суммировать скачивания PWA напрямую с сайта к скачиваниям из Play Store при условии, что скачали с Android? Или как-нибудь перенаправить пользователя обновлять приложение уже через Play Store при условии, что изначально пользователь «установил» приложение с сайта?
Самый простой путь — добавить related_applications в Web App Manifest.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий