Navigator: getInstalledRelatedApps() 方法

实验性: 这是一个 实验性技术
在生产环境中使用此功能前,请仔细查看 浏览器兼容性表

安全上下文:此功能仅在 安全上下文(HTTPS)中可用,某些或所有 支持的浏览器 均适用。

getInstalledRelatedApps() 方法返回一个 Promise,该 Promise 解析为一个对象数组,这些对象表示用户已安装的任何相关的平台特定应用或 渐进式 Web 应用。这可用于内容个性化,例如,如果平台特定应用和/或 PWA 已经安装,则可以从 Web 应用中移除“安装我们的应用”横幅。

注意:此方法必须在顶级 安全上下文 中调用,即,不能嵌入在 <iframe> 中。

描述

getInstalledRelatedApps() 可用于检查与调用此方法的 Web 应用相关的通用 Windows 平台 (UWP) 应用、Android 应用和 PWA 的安装情况。

要将调用 Web 应用与平台特定应用或 PWA 关联,必须执行以下两项操作

  1. 必须在其 清单文件related_applications 成员中指定调用 Web 应用。
  2. 必须定义平台特定应用或 PWA 与调用应用之间的关系。

定义关系的方式因应用类型而异

  • Android 应用通过 数字资产链接系统 执行此操作。
  • Windows UWP 应用通过 URI 处理程序 执行此操作。
  • PWA 通过以下方式执行此操作:
    • 如果 PWA 检查其是否已安装在底层平台上,则在其自己的 related_applications 清单成员中使用自定义条目。
    • 如果应用位于 PWA 范围之外,则检查其是否已安装,则在其 /.well-known/ 目录中的 assetlinks.json 文件中。

有关如何处理每种情况的更多详细信息,请参阅 您的应用是否已安装?getInstalledRelatedApps() 会告诉您!

注意:大多数支持的浏览器在检测到可安装的 PWA 时会提供其自己的安装 UI,如果 PWA 已经安装,则不会显示该 UI,请参阅 使 PWA 可安装 > 从 Web 安装。可以使用 beforeinstallprompt 事件禁止显示此 UI,该事件还可以与 getInstalledRelatedApps() 结合使用,以便根据平台特定应用是否可用来禁止显示此 UI。有关其他有用信息,请参阅 从您的 PWA 触发安装

语法

js
getInstalledRelatedApps()

参数

无。

返回值

一个返回包含已安装相关应用对象的数组的 Promise。每个对象可以包含以下属性

id 可选

表示在指定平台上用于表示应用程序的 ID 的字符串。字符串的确切形式因平台而异。

平台

表示相关应用关联的 平台(生态系统或操作系统)的字符串。这可以是

url 可选

表示与应用关联的 URL 的字符串。这通常是您可以阅读有关应用信息并安装它的地方。

version 可选

表示相关应用版本的字符串。

相关应用信息必须先前已在调用 Web 应用的 清单文件related_applications 成员中指定。

异常

InvalidStateError DOMException

该方法不是在顶级浏览上下文中调用的。

示例

js
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

浏览器兼容性

BCD 表仅在浏览器中加载

另请参阅