Manifest:related_applications 支持情况
发布于 更新于
Web App Manifest:related_applications / prefer_related_applications ——
related_applications 是一个数组,列出与你的 PWA 相关的平台特定应用(每一项
需要 platform,以及 url 或 id 中至少一个),它也是
Navigator.getInstalledRelatedApps() 的数据来源。prefer_related_applications
是另一个独立的清单成员:一个布尔提示,部分浏览器会据此优先安装原生应用而非
你的 Web 应用。两个成员各自拥有独立的 BCD 条目,因此下方分别提供各自的
支持情况表。
浏览器与生态支持:related_applications
Section titled “浏览器与生态支持:related_applications”- 图例
- 支持
- 部分支持
- 需开启标志
- 不支持
- 未知
| 浏览器 / 平台 | 支持 | 版本 | 置信度 | 来源 | 备注 |
|---|---|---|---|---|---|
| Chrome (Desktop) | 不支持 | — | 高 | 来源 | 1 |
| Chrome (Android) | 支持 | 44 | 高 | 来源 | — |
| Edge (Desktop) | 支持 | 17 | 高 | 来源 | — |
| Firefox (Desktop) | 不支持 | — | 高 | 来源 | 2 |
| Firefox (Android) | 不支持 | — | 高 | 来源 | 3 |
| Safari (macOS) | 不支持 | — | 高 | 来源 | 4 |
| Safari (iOS) | 不支持 | — | 高 | 来源 | 56 |
| Samsung Internet | 支持 | 4.0 | 高 | 来源 | 7 |
| WebView (Android) | 支持 | 44 | 高 | 来源 | 8 |
浏览器与生态支持:prefer_related_applications
Section titled “浏览器与生态支持:prefer_related_applications”- 图例
- 支持
- 部分支持
- 需开启标志
- 不支持
- 未知
| 浏览器 / 平台 | 支持 | 版本 | 置信度 | 来源 | 备注 |
|---|---|---|---|---|---|
| Chrome (Desktop) | 不支持 | — | 高 | 来源 | 1 |
| Chrome (Android) | 支持 | 44 | 高 | 来源 | — |
| Edge (Desktop) | 支持 | 17 | 高 | 来源 | — |
| Firefox (Desktop) | 不支持 | — | 高 | 来源 | 2 |
| Firefox (Android) | 不支持 | — | 高 | 来源 | 3 |
| Safari (macOS) | 不支持 | — | 高 | 来源 | 4 |
| Safari (iOS) | 不支持 | — | 高 | 来源 | 56 |
| Samsung Internet | 支持 | 4.0 | 高 | 来源 | 7 |
| WebView (Android) | 支持 | 44 | 高 | 来源 | 8 |
{ "prefer_related_applications": false, "related_applications": [ { "platform": "play", "url": "https://play.google.com/store/apps/details?id=com.example.app", "id": "com.example.app" } ]}在基于 Chromium 的浏览器上,prefer_related_applications 必须为 false
或省略,你的 Web 应用本身才能保持可安装——只有在确实希望把用户引导至原生应用
时才将其设为 true。
如何在运行时检测
Section titled “如何在运行时检测”MDN 指出 related_applications 支持使用
Navigator.getInstalledRelatedApps() 来检测关联应用是否已安装,因此对该
方法做特性检测并提供回退:
async function checkRelatedNativeApp() { if ('getInstalledRelatedApps' in navigator) { const related = await navigator.getInstalledRelatedApps(); return related.length > 0; } // 回退方案:浏览器无法报告已安装的关联应用,因此假定没有, // 让 PWA 安装流程正常继续。 return false;}- 根据 MDN 的浏览器兼容数据说明,Firefox for Android 会解析
related_applications/prefer_related_applications,但不会产生任何效果—— 即使 JSON 有效也不要指望行为发生变化。 - 根据 MDN 的浏览器兼容数据,有多个浏览器不支持这两个成员——具体的逐浏览器 支持情况请分别查看上方两张表格。
- 在 Chromium 浏览器上把
prefer_related_applications设为true可能会让你自己的 PWA 安装提示被原生应用列表取代——上线前请确认这正是 你想要的效果。
← 返回兼容性浏览器。