106 lines
5.8 KiB
Markdown
106 lines
5.8 KiB
Markdown
---
|
||
title: "📲 Как добавить PWA на главный экран"
|
||
date: 2023-02-14T23:14:16+03:00
|
||
draft: false
|
||
tags: [development, javascript, pwa]
|
||
---
|
||
|
||
В этой статье я разберу, как этого добиться того,
|
||
чтобы используя веб-манифест добавить функцию в PWA приложеине
|
||
под названием **«Добавить на главный экран»**.
|
||
|
||
Эта технология позволяет запускать приложение прямо с рабочего стола,
|
||
без запуска браузера и ручного ввода URL-адреса.
|
||
|
||
Веб-приложение может быть установлено рядом с нативным.
|
||
Поэтому к нему проще получить доступ, а так же можно указать,
|
||
что приложение должно использовать полноэкранный режим браузера,
|
||
делая его ещё более похожим на нативное.
|
||
|
||
## Требования
|
||
|
||
Чтобы сделать сайт доступным для установки, ему необходимы следующие вещи:
|
||
|
||
* Веб-манифест с правильно заполненными полями
|
||
* Сайт должен использовать защищённый HTTPS протокол
|
||
* Иконка для предоставления приложения на устройстве
|
||
* Зарегистрированный service worker, чтобы приложение работало в offline режиме
|
||
|
||
## Файл манифеста
|
||
|
||
Ключевым элементом является файл манифеста,
|
||
в котором представлена вся информация о веб-сайте в JSON формате.
|
||
|
||
Обычно файл манифеста находится в корневой папке веб-приложения.
|
||
Он содержит информацию о названии приложения, пути к значкам разных размеров
|
||
и цвет фона для использования при загрузке.
|
||
|
||
Эта информация необходима браузеру для правильного отображения приложения
|
||
при установке на домашнем экране.
|
||
|
||
Файл `app.webmanifest` веб-приложения включают в раздел `<head>` файла `index.html`
|
||
с помощью следующей строчки кода:
|
||
|
||
```html
|
||
<link rel="manifest" href="app.webmanifest">
|
||
```
|
||
|
||
Содержимое файла может выглядеть так:
|
||
|
||
```json
|
||
{
|
||
"name": "Progressive Web App",
|
||
"short_name": "app",
|
||
"description": "Progressive Web App.",
|
||
"icons": [
|
||
{
|
||
"src": "icons/icon-32.png",
|
||
"sizes": "32x32",
|
||
"type": "image/png"
|
||
},
|
||
// ...
|
||
{
|
||
"src": "icons/icon-512.png",
|
||
"sizes": "512x512",
|
||
"type": "image/png"
|
||
}
|
||
],
|
||
"start_url": "/pwa-examples/app/index.html",
|
||
"display": "fullscreen",
|
||
"theme_color": "#B12A34",
|
||
"background_color": "#B12A34"
|
||
}
|
||
```
|
||
|
||
Названия большинства полей говорят сами за себя, но давай разберём их подробно:
|
||
|
||
* `name` — Полное название приложения
|
||
* `short_name` — Короткое название для отображения на домашнем экране
|
||
* `description` — Одно-два предложения, описывающих приложение
|
||
* `icons` — Информация о значках (URL, размеры, типы)
|
||
* `start_url` — Загружаемый исходный документ при запуске приложения
|
||
* `display` — Как приложение должно отображаться; может быть `fullscreen` (полноэкранный), `standalone` (автономный), `minimal-ui` (минимальный пользовательский интерфейс), `browser` (браузер)
|
||
* `theme_color` — Основной цвет для интерфейса, используется операционной системой
|
||
* `background_color` — Цвет для фона, используется при установке и на заставке
|
||
|
||
Минимальные требования к манифесту - `name`
|
||
и хотя бы один значок (с `src`, `size` и `type`).
|
||
Поля `description`, `short_name`, и `start_url` являются рекомендуемыми.
|
||
|
||
## Добавить на домашний экран
|
||
|
||
«Добавить на домашний экран» (кратко: `a2hs`) — это функция,
|
||
реализованная браузерами, которая берёт информацию из веб-манифеста
|
||
и использует её для добавления приложения на домашний экран устройства
|
||
со значком и именем. Это работает при выполнении требований, описанных выше.
|
||
|
||
Когда пользователь посещает PWA с помощью браузера, поддерживающего технологию,
|
||
должен отобразиться значок, указывающий на возможность установки приложения
|
||
в качестве PWA.
|
||
|
||
## P.S.
|
||
|
||
Эта статья написана исключительно копипастом со статьи
|
||
[Как сделать PWA устанавливаемым](https://developer.mozilla.org/ru/docs/Web/Progressive_web_apps/Installable_PWAs)
|
||
на [developer.mozilla.org](developer.mozilla.org).
|