Структура manifest.json

Урок разбирает веб-манифест по полям и показывает минимальный рабочий manifest.json.

Веб-манифест — это JSON-файл, который описывает приложение: его имя, иконки, цвета и то, как оно должно выглядеть после установки.

Зачем нужен манифест

Когда пользователь устанавливает PWA, браузеру нужно знать: как назвать иконку, какую картинку поставить, в каком окне открывать приложение, какого цвета сделать системную панель. Все эти данные берутся из манифеста. Без него браузер не предложит установку — это один из обязательных критериев PWA.

Минимальный манифест

{
  "name": "Моя заметка",
  "short_name": "Заметка",
  "start_url": "/",
  "display": "standalone",
  "background_color": "#ffffff",
  "theme_color": "#3367D6",
  "icons": [
    {
      "src": "/icons/icon-192.png",
      "sizes": "192x192",
      "type": "image/png"
    },
    {
      "src": "/icons/icon-512.png",
      "sizes": "512x512",
      "type": "image/png"
    }
  ]
}

Разбор ключевых полей

ПолеНазначение
nameПолное имя приложения (на экране установки, splash-экране)
short_nameКороткое имя под иконкой на домашнем экране
start_urlС какой страницы открывается приложение при запуске
displayРежим отображения: standalone, fullscreen, minimal-ui, browser
theme_colorЦвет системной панели и UI вокруг приложения
background_colorЦвет splash-экрана до загрузки приложения
iconsМассив иконок разных размеров

Поле display

Самое заметное для пользователя поле — display. Оно решает, будет ли видна адресная строка браузера:

  • standalone — приложение в отдельном окне, без адресной строки. Самый частый выбор для PWA.
  • fullscreen — на весь экран, даже без системных панелей (для игр).
  • minimal-ui — минимальный набор кнопок навигации.
  • browser — открывается как обычная вкладка браузера (по сути отключает «приложенческий» вид).

Как работает под капотом start_url

Когда пользователь нажимает на иконку установленного PWA, браузер открывает именно start_url. Часто туда добавляют метку источника, например /?source=pwa, чтобы в аналитике отличать запуски из установленного приложения от обычных заходов на сайт. Если start_url указать неправильно (например, на несуществующую страницу), приложение при запуске покажет ошибку.

Частые ошибки

  • Невалидный JSON. Лишняя запятая или комментарий — и манифест не распарсится, установка не предложится.
  • Нет иконок 192 и 512. Браузеры обычно требуют именно эти размеры для устанавливаемости.
  • display: browser. С этим значением приложение откроется как обычная вкладка — не то, что ждут от PWA.
  • Относительные пути к иконкам с ошибкой. Если путь не находит файл — иконки не будет, и установка может не сработать.

Итоги

  • Манифест — JSON с именем, иконками, цветами и режимом отображения.
  • Обязательные поля для установки: name/short_name, start_url, display, icons (192 и 512).
  • display: standalone убирает адресную строку — это вид «настоящего приложения».
  • JSON должен быть валидным: без комментариев и хвостовых запятых.
Проверьте себя
1. Какое значение поля display убирает адресную строку и делает PWA похожим на приложение?
Abrowser
Bstandalone
Ctab
Dinline
2. За что отвечает поле start_url?
AЗа цвет иконки
BЗа страницу, которая открывается при запуске установленного приложения
CЗа размер кеша
DЗа регистрацию Service Worker
3. Почему важно, чтобы manifest.json был валидным JSON?
AИначе он будет медленно грузиться
BПри ошибке парсинга манифест игнорируется и установка не предлагается
CВалидность нужна только для SEO
DЭто требование HTTPS