getInstalledRelatedApps() 浏览器支持
发布于
navigator.getInstalledRelatedApps() 会解析为一个数组,包含在调用方 Web 应用自身
related_applications 清单成员中声明、且已安装在用户设备上的相关、平台专属的
应用或 PWA。
浏览器与生态支持
Section titled “浏览器与生态支持”- 图例
- 支持
- 部分支持
- 需开启标志
- 不支持
- 未知
| 浏览器 / 平台 | 支持 | 版本 | 置信度 | 来源 | 备注 |
|---|---|---|---|---|---|
| Chrome (Desktop, Windows) | 支持 | 85 | 低 | 来源 | 1 |
| Chrome (Android) | 支持 | 84 | 低 | 来源 | — |
| Edge (Desktop, Windows) | 支持 | 85 | 低 | 来源 | 2 |
| Samsung Internet | 支持 | 14.0 | 低 | 来源 | — |
| Opera (Desktop, Windows) | 支持 | 71 | 低 | 来源 | 3 |
| Firefox (Desktop) | 不支持 | — | 低 | 来源 | 4 |
| Safari (macOS) | 不支持 | — | 低 | 来源 | 5 |
| Safari (iOS) | 不支持 | — | 低 | 来源 | 6 |
调用该方法并检查解析出的列表,判断是否已安装相关应用,再决定是否展示自己的 安装提示:
const relatedApps = await navigator.getInstalledRelatedApps();const nativeApp = relatedApps.find((app) => app.platform === 'play');if (nativeApp) { console.log('已安装原生对应应用:', nativeApp.id);}如何在运行时检测
Section titled “如何在运行时检测”在调用前先特性检测 getInstalledRelatedApps,并在 API 不可用时回退到始终展示
自己的安装界面:
async function hasInstalledCounterpart() { if (!('getInstalledRelatedApps' in navigator)) { return false; } const relatedApps = await navigator.getInstalledRelatedApps(); return relatedApps.length > 0;}- 调用方 Web 应用的清单必须在自身的
related_applications成员中列出相关的 Android 应用、UWP 应用或 PWA,否则该方法始终解析为空。 - 相关的平台专属应用或 PWA 也必须反向声明这一关系——具体每个平台当前的
验证要求,请参见 MDN 的
related_applications参考文档。 - 在非顶层浏览上下文中调用该方法时,返回的 Promise 会以
InvalidStateErrorDOMException被拒绝(reject)。 - 根据上表,对于任何不支持这一 WICG API 的浏览器,请始终保留展示自己安装 提示的回退路径。
← 返回兼容性浏览器。