Spec-Zone.ru › Web APIs

BeforeInstallPromptEvent

Экспериментально: Это экспериментальная технология .
Перед использованием в продакшене внимательно изучите таблицу совместимости с браузерами.

Нестандартно: Эта функция нестандартна и не соответствует стандартам. Не используйте её на сайтах, ориентированных на веб, в продакшене: она не будет работать для всех пользователей. Также могут быть значительные несовместимости между реализациями, и поведение может измениться в будущем.

Интерфейс BeforeInstallPromptEvent — интерфейс события beforeinstallprompt, срабатывающего в объекте Window перед тем, как пользователя попросят добавить сайт в закладки на мобильном устройстве.

Этот интерфейс наследуется от интерфейса Event.

Событие BeforeInstallPromptEvent

Конструктор

BeforeInstallPromptEvent() Нестандартно Экспериментально

Создаёт новый объект BeforeInstallPromptEvent.

Свойства экземпляра

Наследует свойства от родительского класса Event.

BeforeInstallPromptEvent.platforms Только для чтения Нестандартно Экспериментально

Возвращает массив строковых значений, содержащих платформы, на которых было вызвано событие. Это предоставляется для агентов пользователя, которые хотят предоставить пользователю выбор версий, например, «web» или «play», что позволит пользователю выбрать между веб-версией или версией Android.

BeforeInstallPromptEvent.userChoice Только для чтения Нестандартно Экспериментально

Возвращает Promise, который разрешается до объекта, описывающего выбор пользователя при запросе установки приложения.

Методы экземпляра

BeforeInstallPromptEvent.prompt() Нестандартно Экспериментально

Отображает запрос пользователя о желании установить приложение. Этот метод возвращает Promise, который разрешается до объекта, описывающего выбор пользователя при запросе установки приложения.

Примеры

В следующем примере приложение предоставляет собственную кнопку установки, которая имеет id "install". Изначально кнопка скрыта.

<button id="install" hidden>Install</button>

Обработчик beforeinstallprompt:

  • Отменяет событие, что предотвращает отображение браузером собственного пользовательского интерфейса установки на некоторых платформах
  • Присваивает объект BeforeInstallPromptEvent переменной, чтобы он мог быть использован позже
  • Отображает кнопку установки приложения.
let installPrompt = null;
const installButton = document.querySelector("#install");

window.addEventListener("beforeinstallprompt", (event) => {
  event.preventDefault();
  installPrompt = event;
  installButton.removeAttribute("hidden");
});

При нажатии кнопки установки приложения:

  • Вызывает метод prompt() сохранённого объекта события для запуска запроса установки.
  • Сбрасывает состояние, очищая переменную installPrompt и снова скрывая её.
installButton.addEventListener("click", async () => {
  if (!installPrompt) {
    return;
  }
  const result = await installPrompt.prompt();
  console.log(`Install prompt was: ${result.outcome}`);
  installPrompt = null;
  installButton.setAttribute("hidden", "");
});

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
BeforeInstallPromptEvent 44 79 Нет 31 Нет 44 Нет 32 Нет 5.0 44
BeforeInstallPromptEvent 44 79 Нет 31 Нет 44 Нет 32 Нет 5.0 44
platforms 44 79 Нет 31 Нет 44 Нет 32 Нет 5.0 44
prompt 76
44–76Разрешается пустым обещанием.
79 Нет 63
31–63Разрешается пустым обещанием.
Нет 76
44–76Разрешается пустым обещанием.
Нет 54
32–54Разрешается пустым обещанием.
Нет 5.0 76
44–76Разрешается пустым обещанием.
userChoice 44 79 Нет 31 Нет 44 Нет 32 Нет 5.0 44

См. также

  • Делаем PWA устанавливаемыми
  • Как предоставить собственный опыт установки в приложении на web.dev (2021)

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/BeforeInstallPromptEvent

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API