0 args — install self
navigator.install()
No arguments. Installs the current site as a PWA. Equivalent to the install button Chrome shows in the omnibox, but the page asks.
demo · v143
A unified play space for all three navigator.install() signatures, side-by-side, with a live activity timeline. Each cell calls a different overload; the timeline shows the actual permission state, user gesture requirement, and the resolution path.
chrome://flags/#web-app-installation-api in Chrome 143. The demo attempts
each call and prints whatever Chrome actually returned (resolved manifest URL, rejection
reason, or "not implemented in this browser").
id. Lets a storefront disambiguate when the target page declares multiple apps (or rewrites its manifest). The browser still verifies the id matches what the manifest declares.web-app-installation permission policy, and whether the page has a manifest link.DOMException with names like NotAllowedError, AbortError, NoModificationAllowedError.// Sig 0 — install self
const url = await navigator.install();
// Sig 1 — install another origin
await navigator.install("https://example.com/app/");
// Sig 2 — disambiguate by manifest id
await navigator.install("https://example.com/", "https://example.com/app");