Spec-Zone.ru › Web APIs

Метод Navigator: getInstalledRelatedApps()

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

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.

Метод getInstalledRelatedApps() возвращает промис, который разрешается массивом объектов, представляющих любые связанные приложения, специфичные для платформы, или Progressive Web App (PWA), установленные у пользователя. Это может быть использовано для персонализации контента, например, для удаления баннеров «Установите наше приложение» с веб-приложения, если приложение, специфичное для платформы, и/или PWA уже установлено.

Примечание: Этот метод должен вызываться в верхнем уровневом безопасном контексте, то есть не вложенном в <iframe>.

Описание

getInstalledRelatedApps() может использоваться для проверки установки приложений Universal Windows Platform (UWP), приложений Android и PWА, связанных с веб-приложением, вызывающим этот метод.

Для ассоциации вызывающего веб-приложения с приложением, специфичным для платформы, или PWA, необходимо выполнить два действия:

  1. Вызывающее веб-приложение должно быть указано в члене related_applications своего файла манифеста.
  2. Приложение, специфичное для платформы, или 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 файла манифеста вызывающего веб-приложения.

Исключения

InvalidStateError DOMException

Метод не был вызван в верхнем уровневом контексте просмотра.

Примеры

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.
Нет

См. также

  • Установлено ли ваше приложение? getInstalledRelatedApps() подскажет вам!

© 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

Spec-Zone.ru

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