getInstalledRelatedApps() browser support
Published
navigator.getInstalledRelatedApps() resolves with the related, platform-specific
apps or PWAs — declared in the calling web app’s own related_applications manifest
member — that are already installed on the user’s device.
Browser & ecosystem support
Section titled “Browser & ecosystem support”- Legend
- Yes
- Partial
- Flag
- No
- Unknown
| Browser / Platform | Support | Versions | Confidence | Source | Notes |
|---|---|---|---|---|---|
| Chrome (Desktop, Windows) | Yes | 85 | low | source | 1 |
| Chrome (Android) | Yes | 84 | low | source | — |
| Edge (Desktop, Windows) | Yes | 85 | low | source | 2 |
| Samsung Internet | Yes | 14.0 | low | source | — |
| Opera (Desktop, Windows) | Yes | 71 | low | source | 3 |
| Firefox (Desktop) | No | — | low | source | 4 |
| Safari (macOS) | No | — | low | source | 5 |
| Safari (iOS) | No | — | low | source | 6 |
How to use it
Section titled “How to use it”Call the method and inspect the resolved list for a related app before deciding whether to show your own install prompt:
const relatedApps = await navigator.getInstalledRelatedApps();const nativeApp = relatedApps.find((app) => app.platform === 'play');if (nativeApp) { console.log('Native counterpart already installed:', nativeApp.id);}How to detect it at runtime
Section titled “How to detect it at runtime”Feature-detect getInstalledRelatedApps before calling it, and fall back to
always showing your own install UI when the API is unavailable:
async function hasInstalledCounterpart() { if (!('getInstalledRelatedApps' in navigator)) { return false; } const relatedApps = await navigator.getInstalledRelatedApps(); return relatedApps.length > 0;}Practical checklist
Section titled “Practical checklist”- The calling web app’s manifest must list the related Android app, UWP app, or PWA
in its own
related_applicationsmember, or the method always resolves empty. - The platform-specific app or PWA must also declare the relationship back — see
MDN’s
related_applicationsreference for the current per-platform verification requirements. - Calling the method outside a top-level browsing context rejects the
returned promise with an
InvalidStateErrorDOMException. - Keep a fallback path that shows your own install prompt for any browser where this WICG API is unavailable, per the table above.
Where to go next
Section titled “Where to go next”← Back to the Compatibility explorer.