Настройка Web App Manifest для PWA

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Настройка Web App Manifest для PWA
Простая
от 4 часов до 2 рабочих дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Настройка Web App Manifest для PWA

Web App Manifest — JSON-файл, описывающий приложение для браузера и ОС. Определяет иконки, название, цвета, ориентацию и поведение при установке на устройство.

Полный manifest.json

{
    "name": "ТехноМагазин — купить электронику онлайн",
    "short_name": "ТехноМагазин",
    "description": "Смартфоны, ноутбуки, аксессуары. Быстрая доставка по России.",
    "start_url": "/?utm_source=pwa&utm_medium=manifest",
    "scope": "/",
    "display": "standalone",
    "display_override": ["window-controls-overlay", "standalone"],
    "orientation": "any",
    "theme_color": "#1a73e8",
    "background_color": "#ffffff",
    "lang": "ru",
    "dir": "ltr",
    "categories": ["shopping", "lifestyle"],
    "icons": [
        {
            "src": "/icons/icon-192.png",
            "sizes": "192x192",
            "type": "image/png",
            "purpose": "any"
        },
        {
            "src": "/icons/icon-192-maskable.png",
            "sizes": "192x192",
            "type": "image/png",
            "purpose": "maskable"
        },
        {
            "src": "/icons/icon-512.png",
            "sizes": "512x512",
            "type": "image/png",
            "purpose": "any"
        },
        {
            "src": "/icons/icon-512-maskable.png",
            "sizes": "512x512",
            "type": "image/png",
            "purpose": "maskable"
        }
    ],
    "screenshots": [
        {
            "src": "/screenshots/catalog-mobile.webp",
            "sizes": "390x844",
            "type": "image/webp",
            "form_factor": "narrow",
            "label": "Каталог товаров"
        },
        {
            "src": "/screenshots/product-mobile.webp",
            "sizes": "390x844",
            "type": "image/webp",
            "form_factor": "narrow",
            "label": "Карточка товара"
        },
        {
            "src": "/screenshots/catalog-desktop.webp",
            "sizes": "1280x800",
            "type": "image/webp",
            "form_factor": "wide",
            "label": "Каталог — десктоп"
        }
    ],
    "shortcuts": [
        {
            "name": "Корзина",
            "short_name": "Корзина",
            "url": "/cart?utm_source=pwa",
            "icons": [{ "src": "/icons/cart-96.png", "sizes": "96x96", "type": "image/png" }]
        },
        {
            "name": "Поиск",
            "short_name": "Поиск",
            "url": "/search?utm_source=pwa",
            "icons": [{ "src": "/icons/search-96.png", "sizes": "96x96", "type": "image/png" }]
        }
    ],
    "protocol_handlers": [
        {
            "protocol": "web+technoshop",
            "url": "/products?q=%s"
        }
    ]
}

Подключение в HTML

<head>
    <link rel="manifest" href="/manifest.json">

    <!-- iOS — Safari не читает manifest для этих параметров -->
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
    <meta name="apple-mobile-web-app-title" content="ТехноМагазин">

    <!-- iOS иконки -->
    <link rel="apple-touch-icon" href="/icons/apple-touch-icon-180.png">
    <link rel="apple-touch-icon" sizes="152x152" href="/icons/apple-touch-icon-152.png">
    <link rel="apple-touch-icon" sizes="120x120" href="/icons/apple-touch-icon-120.png">

    <!-- Splash screens iOS (опционально) -->
    <link rel="apple-touch-startup-image"
          media="(device-width: 390px) and (device-height: 844px)"
          href="/splashscreens/iphone12.png">

    <!-- Windows tile -->
    <meta name="msapplication-TileColor" content="#1a73e8">
    <meta name="msapplication-TileImage" content="/icons/icon-144.png">
    <meta name="theme-color" content="#1a73e8">
</head>

Режимы display

Значение Описание
browser Обычная вкладка браузера
minimal-ui Минимальные элементы навигации
standalone Без адресной строки, как нативное приложение
fullscreen Полный экран без UI браузера

display_override — массив с приоритетом: браузер выберет первый поддерживаемый. window-controls-overlay — для Desktop PWA показывает кастомный titlebar.

Maskable-иконка

Maskable-иконка адаптируется под форму (круг, квадрат, squircle) на разных устройствах. Важно: контент иконки должен находиться в безопасной зоне — центральный круг радиусом 80% от размера.

Проверка: maskable.app — загрузить иконку и проверить как она выглядит в разных масках.

Динамический manifest для мультиязычного сайта

// routes/web.php
Route::get('/manifest.json', [ManifestController::class, 'index']);

// ManifestController.php
public function index(Request $request): JsonResponse
{
    $locale = app()->getLocale();
    $manifest = [
        'name'             => __('pwa.name'),
        'short_name'       => __('pwa.short_name'),
        'description'      => __('pwa.description'),
        'start_url'        => "/?lang={$locale}&utm_source=pwa",
        'lang'             => $locale,
        'theme_color'      => '#1a73e8',
        'background_color' => '#ffffff',
        'display'          => 'standalone',
        'scope'            => '/',
        'icons'            => $this->getIcons(),
        'shortcuts'        => $this->getShortcuts($locale),
    ];

    return response()->json($manifest)
        ->header('Content-Type', 'application/manifest+json');
}

Проверка

  • Chrome DevTools → Application → Manifest — все поля, иконки, устанавливаемость
  • Lighthouse → PWA → проверить все требования
  • PWABuilder.com — полный аудит и генерация пакетов для App Store

Срок настройки: несколько часов для корректного manifest с иконками всех размеров.