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(). Как вы увидите ниже, это позволяет задать пользовательскую обработку запуска для вашего приложения. -
Последняя в запущенном приложении окно с самым последним взаимодействием переходит по целевому URL запуска. Целевой URL по-прежнему доступен через
window.launchQueue.setConsumer(), чтобы можно было реализовать дополнительную пользовательскую обработку навигации запуска. -
Создается новое окно в веб-приложении для загрузки целевого 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 для полного рабочего кода.
Спецификации
Совместимость браузеров
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
Launch_Handler_API |
102 | 102 | Нет | 88 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
См. также
© 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