Режим PWA для сайта - добавить приложение на главный экран
В Веб-браузере Chrome существует функция позволяющая добавлять любой сайт (при соблюдении ряда...
- 22 октября 2020 18 443
- TCSE
- верстка сайтов, PWA, javaScript
- Наши разработки
В Веб-браузере Chrome существует функция позволяющая добавлять любой сайт (при соблюдении ряда условий) в качестве веб-приложения на главный экран гаджета.
Это так называемый режим PWA Ready.
Краткое видео для понимания
Все что требуется для повторения данного результата - 3 текстовых файла на вашем сайте.
pwa-sw.js - сам сервисВоркер
pwa-manifest.json - манифест описывающий название приложения и его иконки
pwa-offline.html - заглушка для режима оффлайн
pwa-manifest.json - манифест описывающий название приложения и его иконки
pwa-offline.html - заглушка для режима оффлайн
Так как мы разрабатываем сайты исключительно на DataLife Engine то предметный разбор будет именно для структуры DLE.
Добавляем в шаблон сайта функции Progressive Web App (PWA)
Архив с файлами для самых нетерпеливых
Установить можно через систему плагинов DLE или в ручную распаковав архив.
1. Загрузить в папку /templates/ файлы:
pwa-manifest.json
pwa-offline.html
pwa-offline.html
2. В корень сайта загрузить файл
pwa-sw.js
3. В файл шаблона main.tpl
перед закрывающим тегом
</head>
вставить:
{* Включаем режим PWA *}
<link rel="manifest" href="/templates/pwa-manifest.json">
Перед закрывающим тегом
</body>
вставит:
{* Включаем режим PWA *}
<script type="text/javascript">
// Проверяем совместимость браузера, в котором мы запускаем
if ("serviceWorker" in navigator) {
if (navigator.serviceWorker.controller) {
console.log("[PWA Builder] active service worker found, no need to register");
} else {
// Регистрация serviceWorker
navigator.serviceWorker
.register("/pwa-sw.js", {
scope: "/"
})
.then(function (reg) {
console.log("[PWA Builder] Service worker has been registered for scope: " + reg.scope);
});
}
}
</script>
4. Отредактировать содержимое файла /templates/pwa-manifest.json
Указать ссылки на свои иконки сайта в секциях
{
"src": "https://via.placeholder.com/192/",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "https://via.placeholder.com/512/",
"type": "image/png",
"sizes": "512x512"
}
Указать фирменный цвет для вашего приложения в секциях
"theme_color" : "#283645",
"background_color" : "#283645",
Указать свое название приложения вместо
"name" : "TCSE-cms.com",
А так же подробное описание, вместо
"description" : "Студия разработки веб-сайтов",
Вписать адрес своего домена, вместо
"start_url" : "https://tcse-cms.com/",
5. Отредактировать содержимое файла /templates/pwa-offline.html
К примеру на нашем сайте он выглядит так
Собственно данный файл необходим для тех случаев, когда клик по иконке приложения внезапно не смог соединится с сайтом и на экране посетителя отобразится страница-заглушка оффлайн режима.
Рекомендуется указывать на ней контактные данные, режим работы и прочую информацию важную для реальных посетителей.
Ниже код всех трех файлов используемых для PWA Ready режима.
Условия срабатывания PWA
Их на самом деле всего три.
Условие 1:
Сайт должен иметь SSL версию, т.е. открываться по HTTPS протоколу.
Условие 2:
В файле манифеста должно быть указаны ссылки на иконки размером 192х192 и 512х512 (мы уже проставили там заглушки, пожалуйста замените их на свои иконки).
Условие 3:
Файл service worker должен быть в корне сайта (речь о /pwa-sw.js).
Для тестирования своего PWA используйте встроенный в Google Chrome - Lighthouse
Но лучшим показателем того, что вы сделали все правильно будет автоматическое появление банера с предложением поставить приложение на главный экран вашего смартфона
В настольной версии Хрома, кстати, тоже работает. Но скрыто в меню
клик по пункту меню переоткроет сайт в виде веб-приложения
7 Комментарии