Spec-Zone.ru › Web APIs

API Обработчика запуска

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

API Обработчика запуска позволяет разработчикам управлять тем, как запускается прогрессивное веб-приложение (PWA) — например, использовать существующее окно или создать новое, а также тем, как обрабатывается целевой URL запуска приложения.

Концепции и использование

Вы можете указать поведение запуска приложения, добавив поле launch_handler в файл манифеста вашего веб-приложения. Оно содержит одно подполе client_mode, которое содержит строковое значение, определяющее, как приложение должно запускаться и переходить к нему. Например:

"launch_handler": {
    "client_mode": "focus-existing"
}

Если не указано, значение по умолчанию client_mode равно auto. Доступные значения:

focus-existing

Выбирается последняя в запущенном приложении окно с самым последним взаимодействием для обработки запуска. Это заполнит целевой URL запуска в свойстве targetURL объекта LaunchParams, переданного в функцию обратного вызова window.launchQueue.setConsumer(). Как вы увидите ниже, это позволяет задать пользовательскую обработку запуска для вашего приложения.

navigate-existing

Последняя в запущенном приложении окно с самым последним взаимодействием переходит по целевому URL запуска. Целевой URL по-прежнему доступен через window.launchQueue.setConsumer(), чтобы можно было реализовать дополнительную пользовательскую обработку навигации запуска.

navigate-new

Создается новое окно в веб-приложении для загрузки целевого URL запуска. Целевой URL по-прежнему доступен через window.launchQueue.setConsumer(), чтобы можно было реализовать дополнительную пользовательскую обработку навигации запуска.

auto

Агент пользователя решает, что лучше всего подходит для платформы. Например, navigate-existing может быть более подходящим для мобильных устройств, где одиночные экземпляры приложений являются обычным явлением, тогда как navigate-new может быть более подходящим для настольных систем. Это значение по умолчанию используется, если предоставленные значения некорректны.

Когда используется focus-existing, вы можете включить код внутри функции обратного вызова window.launchQueue.setConsumer() для предоставления пользовательской обработки targetURL.

window.launchQueue.setConsumer((launchParams) => {
  // Do something with launchParams.targetURL
});

Примечание: LaunchParams также имеет свойство LaunchParams.files, которое возвращает только для чтения массив объектов FileSystemHandle, представляющих любые файлы, переданные вместе с навигацией запуска через метод POST. Это позволяет реализовать пользовательскую обработку файлов.

Интерфейсы

LaunchParams

Используется при реализации пользовательской обработки навигации запуска в PWA. Когда window.launchQueue.setConsumer() вызывается для настройки функциональности обработки навигации запуска, функция обратного вызова внутри setConsumer() получает экземпляр объекта LaunchParams.

LaunchQueue

Когда прогрессивное веб-приложение (PWA) запускается с launch_handler значением client_mode как focus-existing, navigate-new, или navigate-existing, LaunchQueue предоставляет доступ к функциональности, позволяющей реализовать пользовательскую обработку навигации запуска в PWA. Эта функциональность управляется свойствами объекта LaunchParams, переданного в функцию обратного вызова setConsumer().

Расширения других интерфейсов

window.launchQueue

Предоставляет доступ к классу LaunchQueue, который позволяет реализовать пользовательскую обработку навигации запуска в прогрессивном веб-приложении (PWA), с контекстом обработки, обозначенным полем манифеста launch_handler значением client_mode.

Примеры

if ("launchQueue" in window) {
  window.launchQueue.setConsumer((launchParams) => {
    if (launchParams.targetURL) {
      const params = new URL(launchParams.targetURL).searchParams;

      // Assuming a music player app that gets a track passed to it to be played
      const track = params.get("track");
      if (track) {
        audio.src = track;
        title.textContent = new URL(track).pathname.substr(1);
        audio.play();
      }
    }
  });
}

Этот код включен в PWA и выполняется при загрузке приложения при запуске. Функция обратного вызова window.launchQueue.setConsumer() извлекает параметр поиска из LaunchParams.targetURL и, если находит параметр track, использует его для заполнения свойства <audio> и воспроизводит аудиодорожку, на которую он указывает.

См. демо-приложение Musicr 2.0 для полного рабочего кода.

Спецификации

Спецификация
API Обработчика запуска веб-приложения
# launchqueue-interface

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
Launch_Handler_API 102 102 Нет 88 Нет Нет Нет Нет Нет Нет Нет

См. также

  • API Обработчика запуска: Управление запуском вашего приложения
  • Демо-приложение Musicr 2.0

© 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/Launch_Handler_API

Spec-Zone.ru

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