Navigator: getInstalledRelatedApps() 方法
getInstalledRelatedApps()
方法返回一个 Promise,该 Promise 解析为一个对象数组,这些对象表示用户已安装的任何相关的平台特定应用或 渐进式 Web 应用。这可用于内容个性化,例如,如果平台特定应用和/或 PWA 已经安装,则可以从 Web 应用中移除“安装我们的应用”横幅。
描述
getInstalledRelatedApps()
可用于检查与调用此方法的 Web 应用相关的通用 Windows 平台 (UWP) 应用、Android 应用和 PWA 的安装情况。
要将调用 Web 应用与平台特定应用或 PWA 关联,必须执行以下两项操作
- 必须在其 清单文件 的
related_applications
成员中指定调用 Web 应用。 - 必须定义平台特定应用或 PWA 与调用应用之间的关系。
定义关系的方式因应用类型而异
- Android 应用通过 数字资产链接系统 执行此操作。
- Windows UWP 应用通过 URI 处理程序 执行此操作。
- PWA 通过以下方式执行此操作:
- 如果 PWA 检查其是否已安装在底层平台上,则在其自己的
related_applications
清单成员中使用自定义条目。 - 如果应用位于 PWA 范围之外,则检查其是否已安装,则在其
/.well-known/
目录中的assetlinks.json
文件中。
- 如果 PWA 检查其是否已安装在底层平台上,则在其自己的
有关如何处理每种情况的更多详细信息,请参阅 您的应用是否已安装?getInstalledRelatedApps() 会告诉您!。
注意:大多数支持的浏览器在检测到可安装的 PWA 时会提供其自己的安装 UI,如果 PWA 已经安装,则不会显示该 UI,请参阅 使 PWA 可安装 > 从 Web 安装。可以使用 beforeinstallprompt
事件禁止显示此 UI,该事件还可以与 getInstalledRelatedApps()
结合使用,以便根据平台特定应用是否可用来禁止显示此 UI。有关其他有用信息,请参阅 从您的 PWA 触发安装。
语法
getInstalledRelatedApps()
参数
无。
返回值
一个返回包含已安装相关应用对象的数组的 Promise
。每个对象可以包含以下属性
id
可选-
表示在指定平台上用于表示应用程序的 ID 的字符串。字符串的确切形式因平台而异。
平台
-
表示相关应用关联的 平台(生态系统或操作系统)的字符串。这可以是
"chrome_web_store"
:一个 Google Chrome 网上应用商店 应用。"play"
:一个 Google Play 商店 应用。"chromeos_play"
:一个 ChromeOS Play 应用。"webapp"
:一个 渐进式 Web 应用。"windows"
:一个 Windows 应用商店 应用。"f-droid"
:一个 F-Droid 应用。"amazon"
:一个 Amazon 应用商店 应用。
url
可选-
表示与应用关联的 URL 的字符串。这通常是您可以阅读有关应用信息并安装它的地方。
version
可选-
表示相关应用版本的字符串。
相关应用信息必须先前已在调用 Web 应用的 清单文件 的 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 |
浏览器兼容性
BCD 表仅在浏览器中加载