Web Install API в Edge 148 — сайт ставит другой сайт как приложение
Microsoft Edge 148 раскатал Web Install API — теперь один сайт может предложить пользователю установить другой сайт как PWA. Что это значит, кому пригодится и где грабли.
В мае Microsoft выкатил Edge 148. Среди новинок — Web Install API. Идея простая: сайт-A может предложить пользователю установить сайт-B как PWA. До этого PWA-установка была возможна только с того же домена, который ставится. Теперь — нет.
Звучит мелко, но это меняет логику дистрибуции веб-приложений. Разбираем.
Что именно умеет
API называется navigator.install() и принимает URL приложения, которое нужно поставить. На запрос всплывает системный диалог браузера — пользователь видит, какой сайт ставится, и нажимает «Установить» или отказывается. Полный код вызова:
const result = await navigator.install('https://app.example.com/');
if (result.installed) {
// юзер установил
}
Доступ к API требует трёх условий:
- HTTPS на инициирующем домене
- Жест пользователя — нельзя вызвать из любого фрагмента кода, нужен клик или тап
- Целевой сайт должен иметь валидный manifest.json и service worker, как для обычной PWA
Зачем это нужно
Несколько реальных сценариев, которые сразу приходят в голову:
- Маркетплейсы и каталоги приложений — публикуют список PWA, и каждое можно установить прямо со страницы каталога. Без редиректов на каждый отдельный сайт
- Продуктовая reklama в B2B — внутри корпоративного портала сотрудник видит карточки рекомендованных инструментов и ставит одной кнопкой
- Cross-promo между продуктами — если у вас несколько связанных сервисов, не нужно гонять пользователя по доменам. С главной — ставите остальное
- Образовательные платформы — курс предлагает поставить пакет тулзов, нужных для прохождения, одним кликом
Где грабли
Главный риск — фишинг. Если сайт-A ставит сайт-B, пользователь может не заметить разницы. Иконка установленной PWA попадает на рабочий стол с именем, которое контролирует сайт-B. Сделать «Yandex Mail» иконку, ведущую на фейковую страницу, теперь легче, чем раньше.
Microsoft частично закрыл это диалогом подтверждения: в нём явно показан URL устанавливаемого приложения. Но мы все знаем, как пользователи читают диалоги. Никак.
Второй риск — abuse через iframe и редиректы. Спецификация пока не до конца проговаривает, что считать «инициирующим доменом», если запрос идёт из iframe-а с третьим доменом. На бета-канале Edge нашли способ вызвать установку с домена, который пользователь даже не видел в адресной строке. Microsoft пообещал пофиксить к Edge 149.
Стоит ли встраивать сейчас
В Chrome/Safari API ещё нет — пока Microsoft катит соло. В Chromium 130 он на флаге, в Firefox даже не в roadmap. По нашим логам Edge на десктопе занимает 9-12% в РФ, на мобайле меньше. Для большинства проектов сейчас это не масштаб, ради которого имеет смысл городить логику.
Есть исключения:
- Если у вас уже работает PWA и есть смежные продукты, добавить вызов
navigator.install()на промо-странице — час работы. Edge-юзеры получат удобство, остальные ничего не теряют - Корпоративные внутренние порталы, где Edge стоит по политике — отличный случай. Внедряем сразу
- Учебные продукты, где аудитория преимущественно на Windows-ноутбуках — есть шанс зацепить
Что делать прямо сейчас
Если приложение уже PWA — добавьте feature detection и опциональный CTA «Установить» с вызовом API на главных промо-страницах. Когда Chrome подхватит (по слухам, в декабрьском релизе), у вас уже будет рабочий код, останется снять блок про Edge-only.
Если приложение не PWA — лучше потратить эту неделю на manifest, service worker и нормальный offline. Web Install API без этого не сработает, а заодно поднимете базовое качество.