Как интегрировать «Добавить на главный экран» в 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), в нижней части пользовательского интерфейса можно увидеть баннер, уведомляющий о том, что сайт можно добавить на главный экран:

Harlow Bros — добавьте PWA на главный экран
Harlow Bros — гордая работа SimiCart

Это продвижение установки по умолчанию, предоставляемое браузером , которое происходит при соблюдении определенных критериев установки. Само уведомление будет показано при первом посещении пользователем вашего веб-сайта, а затем снова примерно через 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 на панели браузера

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

Значок PWA на рабочем столе/главном экране

A2HS — это еще не все

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

Кнопка «Установить» на странице регистрации
Показывать кнопку « Установить » на странице регистрации

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