В настоящее время возможность работы в автономном режиме является новой большой вещью на рынке. Все больше и больше разработчиков работают над приложениями, чтобы предоставить пользователям автономные возможности. Благодаря Angular Service Worker и встроенной поддержке PWA в Angular CLI теперь проще, чем когда-либо, сделать наше веб-приложение загружаемым и устанавливаемым, как родное мобильное приложение.

Что такое PWA

Прогрессивное веб-приложение (PWA) — это тип прикладного программного обеспечения, доставляемого через Интернет и созданного с использованием HTML, CSS и JavaScript. Он предназначен для работы на любой платформе, использующей браузер, соответствующий стандартам.

Внутри PWA использует API браузера Service Worker для предоставления доступа к некоторым собственным функциям. Кроме того, это дает вам ощущение приложения. Хранилище кеша — действительно отличная функция, которая помогает значительно сократить время загрузки страницы.

Что такое сервис-воркер

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

Предпосылки

Чтобы использовать все функции сервисного работника Angular, используйте последние версии Angular и Angular CLI.

Чтобы сервис-воркеры могли быть зарегистрированы, доступ к приложению должен осуществляться по протоколу HTTPS, а не HTTP. Браузеры игнорируют сервис-воркеры на страницах, которые обслуживаются через небезопасное соединение. Причина в том, что сервис-воркеры довольно мощны, поэтому необходимо проявлять особую осторожность, чтобы гарантировать, что сценарий сервис-воркера не был подделан.

Из этого правила есть одно исключение: чтобы облегчить локальную разработку, браузеры не требуют безопасного подключения при доступе к приложению на localhost.

Приступим к реализации Service worker и PWA в нашем угловом приложении.

ШАГ 1. Создайте приложение Angular

вы можете пропустить этот шаг, если реализуете существующее угловое приложение. мы будем использовать Angular CLI.

ng new angular-pwa

Приведенная выше команда создаст угловое приложение scaffold внутри папки angular-pwa. Давайте перейдем к папке angular-pwa

ШАГ 2. Добавьте пакет PWA

Команда запускает схемы, которые добавляют и изменяют несколько файлов. Он позаботится о настройке вашего приложения для использования сервис-воркеров, добавив пакет service-worker вместе с настройкой необходимых файлов поддержки.

ng add @angular/pwa

Приведенная выше команда выполняет следующие действия:

  1. Добавляет пакет @angular/service-worker в ваш проект.
  2. Включает поддержку сборки сервис-воркеров в CLI.
  3. Импортирует и регистрирует работника службы в модуле приложения.
  4. Устанавливает файлы значков для поддержки установленного Progressive Web App (PWA).
  5. Создает файл конфигурации сервис-воркера с именем ngsw-config.json, который определяет поведение кэширования и другие параметры.
  6. Обновляет файл index.html:
  • Включает ссылку для добавления файла manifest.webmanifest.
  • Добавляет метатеги для theme-color.

ШАГ 3. Создайте сборку

Это займет некоторое время, но через некоторое время наша сборка приложения будет доступна в папке dist.

ng build --prod

Давайте посмотрим, что у нас есть в папке сборки, вот почти все сгенерированные файлы:

ШАГ 4. Запустите угловое приложение PWA

Поскольку ng serve не работает с сервисными работниками, вы должны использовать отдельный HTTP-сервер для локального запуска PWA в вашем проекте. Вы можете использовать любой HTTP-сервер. В приведенном ниже примере используется пакет http-server из npm.

Установить http-сервер глобально (Ссылка)

npm install -g http-server

Чтобы обслуживать каталог, содержащий ваши веб-файлы, с помощью http-server, выполните следующую команду:

http-server -p 8080 -c-1 dist/angular-pwa

Параметр -c-1 отключит кэширование сервера, и сервер будет работать на порту 8080, обслуживающем производственную версию приложения. если порт 8080 занят, вы можете изменить его на любой номер порта.

ШАГ 5. Протестируйте приложение angular PWA

Когда сервер запущен, вы можете указать в браузере http://localhost:8080/. Ваше приложение должно загружаться нормально.

Совет: при тестировании сервис-воркеров Angular рекомендуется использовать режим инкогнито или приватное окно в браузере, чтобы убедиться, что сервис-воркер не читает данные из предыдущего остаточного состояния, что может привести к неожиданному поведению.

Теперь в инструменте разработчика вашего браузера должен быть установлен сервис-воркер.

изменить настройки сети на автономный режим

Теперь обновите приложение, приложение снова загрузится без подключения к сети.

Заключение

Теперь мы научились создавать автономные возможности и возможности PWA в любом приложении angular. Спасибо за прочтение :)

Если вам понравилась эта статья, нажмите 👏 кнопку хлопка 1000 раз или столько раз, сколько хотите. Не стесняйтесь задавать вопросы, если они у вас есть. Большое спасибо за чтение!

Прежде чем ты уйдешь

Спасибо за прочтение! Если вы хотите связаться со мной, не стесняйтесь обращаться ко мне по адресу [email protected] или в мой профиль LinkedIn. Кроме того, не стесняйтесь просматривать мой профиль и читать разные статьи.