Метод Navigator: getInstalledRelatedApps()
Экспериментально: Это экспериментальная технология .
Перед использованием в производстве внимательно изучите таблицу совместимости с браузерами.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.
Метод getInstalledRelatedApps() возвращает промис, который разрешается массивом объектов, представляющих любые связанные приложения, специфичные для платформы, или Progressive Web App (PWA), установленные у пользователя. Это может быть использовано для персонализации контента, например, для удаления баннеров «Установите наше приложение» с веб-приложения, если приложение, специфичное для платформы, и/или PWA уже установлено.
Примечание: Этот метод должен вызываться в верхнем уровневом безопасном контексте, то есть не вложенном в <iframe>.
Описание
getInstalledRelatedApps() может использоваться для проверки установки приложений Universal Windows Platform (UWP), приложений Android и PWА, связанных с веб-приложением, вызывающим этот метод.
Для ассоциации вызывающего веб-приложения с приложением, специфичным для платформы, или PWA, необходимо выполнить два действия:
- Вызывающее веб-приложение должно быть указано в члене
related_applicationsсвоего файла манифеста. - Приложение, специфичное для платформы, или PWA, должно иметь своё отношение к вызывающему приложению.
Определение отношения осуществляется по-разному в зависимости от типа приложения:
- Приложение Android делает это через систему Digital Asset Links.
- Приложение Windows UWP делает это через обработчики URI.
- PWA делает это через:
- Самоопределяющуюся запись внутри своего члена
related_applicationsманифеста в случае, если PWA проверяет, установлено ли оно на базовой платформе. - Файл
assetlinks.jsonв каталоге/.well-known/в случае, если приложение находится вне области PWA и проверяет, установлено ли оно.
- Самоопределяющуюся запись внутри своего члена
Подробнее о каждом из этих случаев см. Установлено ли ваше приложение? getInstalledRelatedApps() подскажет вам!
Примечание: Большинство поддерживающих браузеров предоставляют собственный пользовательский интерфейс для установки, когда обнаруживается устанавливаемая PWA, который не будет появляться, если она уже установлена — см. Создание устанавливаемых PWA > Установка с веб-страницы. Это можно подавить, используя событие beforeinstallprompt, которое также можно комбинировать с getInstalledRelatedApps() для подавления на основе наличия приложения, специфичного для платформы. Дополнительную полезную информацию см. в Вызвать запрос на установку из вашей PWA.
Синтаксис
getInstalledRelatedApps()
Параметры
Нет.
Возвращаемое значение
Promise промис, который выполняется с массивом объектов, представляющих любые установленные связанные приложения. Каждый объект может содержать следующие свойства:
idНеобязательно-
Строка, представляющая идентификатор, используемый для представления приложения на указанной платформе. Точный формат строки будет различаться в зависимости от платформы.
platform-
Строка, представляющая платформу (экосистему или операционную систему), с которой связано приложение. Это может быть:
-
"chrome_web_store": Приложение из Google Chrome Web Store. -
"play": Приложение из Google Play Store. -
"chromeos_play": Приложение из ChromeOS Play. -
"webapp": Progressive Web App. -
"windows": Приложение из Windows Store. -
"f-droid": Приложение из F-Droid. -
"amazon": Приложение из Amazon App Store.
-
urlНеобязательно-
Строка, представляющая URL, связанный с приложением. Обычно здесь можно прочитать информацию о нём и установить его.
versionНеобязательно-
Строка, представляющая версию связанного приложения.
Информация о связанном приложении должна быть предварительно указана в члене related_applications файла манифеста вызывающего веб-приложения.
Исключения
-
InvalidStateErrorDOMException -
Метод не был вызван в верхнем уровневом контексте просмотра.
Примеры
const relatedApps = await navigator.getInstalledRelatedApps();
// Dump all the returned related apps into a table in the console
console.table(relatedApps);
// Search for a specific installed platform-specific app
const psApp = relatedApps.find((app) => app.id === "com.example.myapp");
if (psApp && doesVersionSendPushMessages(psApp.version)) {
// There's an installed platform-specific app that handles sending push messages
// No need to handle this via the web app
return;
}
Примечание: В этом примере doesVersionSendPushMessages() — это теоретическая функция, определённая разработчиком; она не предоставляется браузером.
Спецификации
| Спецификация |
|---|
| API «Получить установленные связанные приложения» # dom-navigator-getinstalledrelatedapps |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
getInstalledRelatedApps |
85Поддерживается в Windows для проверки установки приложений Universal Windows Platform (UWP). В других случаях возвращается пустой массив.80–85В любом случае возвращается пустой массив. |
85Поддерживается в Windows для проверки установки приложений Universal Windows Platform (UWP). В других случаях возвращается пустой массив.80–85В любом случае возвращается пустой массив. |
Нет |
71Поддерживается в Windows для проверки установки приложений Universal Windows Platform (UWP). В других случаях возвращается пустой массив.67–71В любом случае возвращается пустой массив. |
Нет |
84Поддерживает проверку установки Progressive Web App (PWA).80Поддерживает проверку установки приложения Android. |
Нет | Нет | Нет |
14.0Поддерживает проверку установки Progressive Web App (PWA).13.0Поддерживает проверку установки приложения Android. |
Нет |
См. также
© 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/Navigator/getInstalledRelatedApps