navigator.getInstalledRelatedApps() asks: “Did this user already install our related Play / Windows / PWA app?” Learn the Promise result, manifest setup, hiding install prompts, five examples, and try-it labs.
01
Kind
Method
02
Returns
Promise<RelatedApp[]>
03
Status
Experimental
04
Context
Secure + top-level
05
Manifest
related_applications
06
Typical UX
Hide install banner
Fundamentals
Introduction
Many sites show “Install our app” banners for a Play Store app, Windows app, or PWA. That banner is annoying if the user already installed it.
getInstalledRelatedApps() lets a properly configured site ask the browser for related apps that are already installed, then personalize the page — for example, hide the banner or skip a web-only push path when the native app handles it.
💡
Association first
The method only reports apps you declared in related_applications and linked on the platform side. Without that setup, the array is usually empty.
Concept
Understanding the getInstalledRelatedApps() Method
No parameters — call navigator.getInstalledRelatedApps().
Returns a Promise — resolves to an array of related-app objects.
Four facts to remember about navigator.getInstalledRelatedApps().
Returns
Promise
Related app array
Status
Experimental
Not Baseline
Context
HTTPS
Top-level only
Needs
manifest
related_applications
Compare
📋 Install Banner With vs Without This API
Without the API
With getInstalledRelatedApps()
Install prompt
Often shown even if native app exists
Can hide when a related app is installed
Setup
None
Manifest + platform association
Support
Works everywhere as plain UI
Experimental / limited browsers
Fallback
N/A
Keep showing install UI if API missing / empty
Hands-On
Examples Gallery
Examples follow MDN patterns. Prefer Try It Yourself — without a configured related_applications association most pages return an empty array or a missing method.
📚 Getting Started
Detect the API and query related installed apps.
Example 1 — Feature Detection
Check the method, secure context, and top-level browsing context.
navigator.getInstalledRelatedApps() is experimental and not Baseline. Support is strongest in some Chromium-based browsers with a configured related-apps association. Always feature-detect, use HTTPS on a top-level page, and keep install UI working without the API.
✓ Experimental · Not Baseline
Navigator.getInstalledRelatedApps()
Promise → related installed apps — hide install banners when the native/PWA app is present.
LimitedExperimental
Google ChromeRelated Apps API where implemented + configured
Limited
Microsoft EdgeFollow Chromium / Windows related-app support
Limited
OperaFollow Chromium where available
Limited
Mozilla FirefoxTypically unavailable — feature-detect
Unavailable
Apple SafariTypically unavailable — feature-detect
Unavailable
Internet ExplorerNo getInstalledRelatedApps support
Unavailable
getInstalledRelatedApps()Limited
Bottom line: Detect the method, configure related_applications, query on a secure top-level page, and default to showing install UI when results are empty or unsupported.
Wrap Up
Conclusion
navigator.getInstalledRelatedApps() is an experimental way to learn whether related store apps or PWAs are already installed. Configure the manifest association, call it from a secure top-level page, and use the result to soften install prompts — with a solid fallback when the API is missing.
Five things to remember about getInstalledRelatedApps()
Experimental related-app check — hide install noise when already installed.
5
Core concepts
📱01
Returns
Promise array
Related apps
⚡02
Status
Experimental
Limited
🔒03
Context
HTTPS top-level
Required
📄04
Setup
related_applications
Manifest
🎯05
UX
hide install banner
Optional
❓ Frequently Asked Questions
It returns a Promise that resolves to an array of objects for related platform apps or PWAs the user already installed — useful to hide “install our app” prompts when the app is already present.
MDN marks it Experimental and Limited availability (not Baseline). It is not Deprecated or Non-standard. Always feature-detect and keep a normal install UX fallback.
List related apps in the web app manifest related_applications member, and define the relationship on the platform side (for example Digital Asset Links on Android, URI handlers on Windows, or PWA self-entries / assetlinks).
Yes. It requires a secure context. It must also run in a top-level browsing context — not inside an iframe (InvalidStateError otherwise).
At least platform; optionally id, url, and version. Platform values include play, windows, webapp, chrome_web_store, and others documented on MDN.
Usually no. Without a matching manifest association and a supporting browser, you get an empty array or a missing method. That is expected for beginners testing outside a configured PWA.
Did you know?
Browsers often hide their own PWA install UI when the app is already installed. getInstalledRelatedApps() helps you do the same for related Play / Windows apps that are not the web app itself.