Как интегрировать «Добавить на главный экран» в PWA
Опубликовано: 2021-05-13Оглавление
Добавление на главный экран (для краткости A2HS) имеет основополагающее значение для работы с прогрессивными веб-приложениями, поскольку оно позволяет полностью использовать родные приложения, включая запуск приложений с домашнего экрана пользователя.
Рекомендуемая литература: PWA vs Native: что вам больше подходит?
Будучи такой жизненно важной функцией для вашего PWA, вы, конечно же, не можете не интегрировать ее, поэтому сегодня в учебнике SimiCart PWA мы рассмотрим причины, по которым A2HS необходим, как он используется и как сделать PWA. Готовность к A2HS как на мобильных устройствах, так и на настольных компьютерах.
Поддерживаемые браузеры
A2HS очень близок к тому, чтобы стать универсальной функцией между браузерами. В настоящее время он поддерживается Mobile Chrome/Android Webview (начиная с версии 31), Opera для Android (начиная с версии 32) и Firefox для Android (начиная с версии 58). Для получения более подробной информации посетите веб-сайт CanIUse.
Добавление PWA на главный экран в действии
При столкновении с сайтом, на котором включено добавление PWA на главный экран (A2HS-Enabled), в нижней части пользовательского интерфейса можно увидеть баннер, уведомляющий о том, что сайт можно добавить на главный экран:

Это продвижение установки по умолчанию, предоставляемое браузером , которое происходит при соблюдении определенных критериев установки. Само уведомление будет показано при первом посещении пользователем вашего веб-сайта, а затем снова примерно через 90 дней.
Как сделать ваше веб-приложение с поддержкой A2HS на мобильных устройствах
Устанавливаемые критерии
Чтобы ваше веб-приложение можно было установить, оно должно:
- еще не установлен
- соответствует эвристике взаимодействия с пользователем (пользователь должен взаимодействовать со страницей не менее 30 секунд)
- обслуживаться через безопасное (HTTPS) соединение
- зарегистрировать сервисного работника
- иметь правильно настроенный файл манифеста
- И самое главное, используемый браузер должен поддерживать событие
beforeinstallprompt. Полный список браузеров, поддерживающих событиеbeforeinstallprompt, см. в CanIUse.
Начиная
В демонстрационных целях в этой статье мы будем использовать проект create-react-app в качестве основы для создания устанавливаемого PWA. create-react-app — это простая команда React для создания одностраничного приложения.
Примечание . Для create-react-app требуется как минимум узел >= 10.16 и npm >= 5.6.
Откройте командную строку Node.js и выполните следующие команды:
npx создать-реагировать-приложение pwa-a2hs компакт-диск pwa-a2hs начало пряжи

Создать файл манифеста
Обычно расположенный глубоко в корневой папке веб-приложения, ваш веб-манифест представляет собой файл, который содержит всю необходимую информацию о вашем веб-сайте, такую как название вашего приложения, пути к различным значкам, цвет фона и т. д., в формате JSON. Файл веб-манифеста имеет решающее значение для функционального веб-приложения, поскольку он позволяет правильно представить ваше веб-приложение на различных этапах взаимодействия с пользователем.
Мы рекомендуем использовать генератор манифеста для автоматического создания файла вместе с оптимизированными по размеру значками для вашего приложения.

Используя генератор манифестов, вы можете получить файл manifest.zip с таким содержимым:

И ваш manifest.webmanifest должен выглядеть примерно так:
{
"theme_color": "#f69435",
"background_color": "#f69435",
"дисплей": "автономный",
"сфера": "/",
"start_url": ".",
"имя": "PWA-A2HS",
"короткое_имя": "PWA",
"description": "Демонстрационная функция PWA для A2HS",
"значки": [
{
"источник": "/icon-192x192.png",
"размеры": "192x192",
"тип": "изображение/png"
},
{
"источник": "/icon-256x256.png",
"размеры": "256x256",
"тип": "изображение/png"
},
{
"источник": "/icon-384x384.png",
"размеры": "384x384",
"тип": "изображение/png"
},
{
"источник": "/icon-512x512.png",
"размеры": "512x512",
"тип": "изображение/png"
}
]
} Теперь скопируйте содержимое сгенерированных файлов манифеста в папку /public/ , удалите файл manifest.json по умолчанию в этой папке и перейдите к следующему шагу.

Связать HTML с манифестом
Когда вы закончите настройку файла манифеста, сохраните его в корневом каталоге вашего веб-сайта, чтобы его можно было вызвать позже с относительным путем, например /manifest.webmanifest . Чтобы завершить настройку файла манифеста, укажите его в заголовке HTML. ( \pwa-a2hs\public\index.html ), например:
<голова>
<метакодировка="utf-8" />
<ссылка rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<мета
имя = "описание"
content="Веб-сайт создан с помощью приложения create-реагировать"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<link rel="manifest" href="%PUBLIC_URL%/manifest.webmanifest" />
<title>PWA A2HS</title>
</голова>Настройка потока установки
Манифест веб-приложения — это не все, что требуется для установки веб-приложения. Вам нужно будет выполнить некоторые дополнительные настройки, чтобы сделать ваше веб-приложение доступным для установки и, таким образом, сделать его на один шаг ближе к PWA.
Создать сервис-воркера
Сервисный работник перехватывает ваши сетевые запросы и включает различные функции, подобные приложениям, которыми славится PWA. Создайте файл service-worker.js в папке pwa-a2hs\public и заполните его следующим содержимым:
self.addEventListener («выборка», функция (событие) {
событие.ответить(
caches.match(event.request).then(function(response) {
вернуть ответ || выборка (событие.запрос);
})
);
}); Здесь нам нужно прослушать событие fetch , так как оно имеет решающее значение для вашего добавления на главный экран, без него ваше приложение React не сможет соответствовать требованиям установки.
Зарегистрируйте своих сервисных работников
И чтобы наш service-worker.js работал, нам нужно зарегистрировать его, вставив этот код в конец <body> нашего index.html :
//index.html
<скрипт>
если ("serviceWorker" в навигаторе) {
// Зарегистрировать сервис-воркер, размещенный в корневом каталоге
// сайт, использующий область действия по умолчанию.
navigator.serviceWorker.register('/service-worker.js').then(function(registration) {
console.log('Регистрация Service Worker прошла успешно:', Registration);
}, /*поймать*/ функция(ошибка) {
console.log('Ошибка регистрации сервис-воркера:', ошибка);
});
} еще {
console.log('Сервисные работники не поддерживаются.');
}
</скрипт>Время проверить это!
Теперь ваш PWA должен быть доступен для установки. Обновите внешний интерфейс, и вы должны увидеть кнопку установки на панели задач (на рабочем столе) или небольшой баннер с уведомлением (на мобильном устройстве).

Нажатие « Установить » приведет к появлению ярлыка PWA на рабочем столе / домашнем экране:

A2HS — это еще не все
Вышеупомянутое является лишь базовым добавлением на главный экран с помощью продвижения установки, предоставляемого браузером. Чтобы поднять его на ступеньку выше, вы также можете сохранить событие beforeinstallprompt, чтобы вручную запустить процесс установки с различными шаблонами для продвижения установки PWA.

С помощью настраиваемой кнопки установки вы можете не прерывать путешествие пользователя, ориентируясь на конкретных пользователей, которым будет полезна установка приложения. И если вы продумаете, где и где разместить рекламный пользовательский интерфейс, ваше PWA, вероятно, будет работать лучше, чем ваши конкуренты, и в результате получит гораздо более высокие коэффициенты конверсии приложения.
