Skip to content

Install APIs in iOS Safari and Home Screen apps

Published

BehaviourMeasured 2026-10-20, iPhone 16 Pro, iOS 18.6.2 (22G100)A, Instrumented readAgrees with BCD

Chromium browsers let a page trigger or defer installation through beforeinstallprompt, and a newer proposal adds navigator.install(). On 2026-10-20, none of the install-related APIs tested was present in a Safari tab or either Home Screen web app on an iPhone 16 Pro running iOS 18.6.2 (22G100).

Does Safari on iOS expose a programmatic install API (such as navigator.install or BeforeInstallPromptEvent, including the onbeforeinstallprompt handler) or navigator.getInstalledRelatedApps(), in a Safari tab or in a Home Screen web app?

We read feature-detection values in three contexts:

  • A Safari tab in a WebDriver automation window on four pages (/lab/device-tests/, /demo/, /reference/installation/ios-add-to-home-screen/ and /lab/device-tests/t1/no-manifest/), notebook N03 and N06;
  • The OpenPWA demo launched from its Home Screen icon (N13);
  • PWA Lab, the Device Lab harness, launched from its Home Screen icon (N18).

Expressions read in each context:

  • 'install' in navigator and typeof navigator.install;
  • 'BeforeInstallPromptEvent' in window and 'onbeforeinstallprompt' in window;
  • 'onappinstalled' in window;
  • 'getInstalledRelatedApps' in navigator.

The demo page also listens for beforeinstallprompt and prints whether it has fired. No page attempted an install; the reads checked whether the APIs were present.

Web Inspector is not needed; the harness prints the values.

  1. In Safari on the iPhone, open https://openpwa.net/lab/device-tests/ and scroll to the Results panel (T5, T9, T10). Read the install rows, or tap Copy results as JSON.
  2. Tap Share, then Add to Home Screen, then Add. Launch PWA Lab from its icon and read the same rows.
  3. Optional: open https://openpwa.net/demo/ in Safari and in the installed demo, and read “Browser offered an install prompt (beforeinstallprompt)” in the installability status.
  4. Optional, with Web Inspector: evaluate 'onappinstalled' in window in both contexts.

On iOS 18.6.2 (22G100) every install API in the list was absent, in the tab and in both Home Screen apps (Instrumented read, A; notebook N03, N13, N18): 'install' in navigator false, typeof navigator.install “undefined”, 'BeforeInstallPromptEvent' in window false, 'onbeforeinstallprompt' in window false and 'getInstalledRelatedApps' in navigator false. 'onappinstalled' in window was false in the tab (N03) and in the raw reads of both apps. The demo’s status read “Not fired yet” for beforeinstallprompt in the tab and in the app.

In Safari on this build, installation goes through the user’s own Share → Add to Home Screen. A page can detect that it is running as an installed app (display-mode: standalone, navigator.standalone), but it has no API to start or defer an install, and none to ask whether a related app is installed.

2026-10-20, iOS 18.6.2

Neither a Safari tab nor the demo Home Screen app exposed navigator.install, BeforeInstallPromptEvent, onbeforeinstallprompt or navigator.getInstalledRelatedApps.

Date
2026-10-20
Device
iPhone 16 Pro
OS and build
iOS 18.6.2 (22G100), release
Context
Safari tab and Home Screen app
Result
As expected
Key values
  • navigatorInstall: undefined
  • BeforeInstallPromptEvent: false
  • onbeforeinstallprompt: false
  • getInstalledRelatedApps: false
Confidence
A, Instrumented read
Tests
T9
Notebook entries
N03, N13
Study
Read the study · Data package
Harness
Harness v1
Harness v1 files used (1), served SHA-256
  • /lab/device-tests/ 42c90845419f5ed3ad15d941bea04f649f4c5d350b1847292292fadd55871486

BCD records no Safari for iOS support for BeforeInstallPromptEvent (BeforeInstallPromptEvent.json, github.com), and its api.Navigator file records install and getInstalledRelatedApps without Safari support (Navigator.json, github.com). The Web Install proposal that defines navigator.install() is a WICG draft (Web Install, wicg.github.io). WebKit’s iOS 16.4 post describes adding a web app through the Share menu’s Add to Home Screen item (Web Push for Web Apps on iOS and iPadOS, webkit.org).

The measurement agrees with these sources. BCD’s Safari for iOS cells do not distinguish a tab from a Home Screen app; this run shows the APIs are absent in both, so the context makes no difference for them on 18.6.2. It confirms the documented absence and is not a new finding.

The values are in the study’s data package (CC BY 4.0): the tab side in raw/2026-10-20-ios18.6.2-tab-lab.json, raw/2026-10-20-ios18.6.2-tab-demo.json, raw/2026-10-20-ios18.6.2-tab-ios-a2hs.json (N03) and raw/2026-10-20-ios18.6.2-tab-t1-no-manifest.json (N06); the demo app in raw/2026-10-20-ios18.6.2-step09-app-demo.json (N13); PWA Lab in raw/2026-10-20-ios18.6.2-step12-app-lab.json (N18). The machine-readable run is in /lab/results.json under the id install-apis-on-ios/2026-10-20-ios-18.6.2-22g100.

The result backs the iOS statements of the install prompt and navigator.install entries. It also backs getInstalledRelatedApps() and the Safari for iOS row of the install prompt compatibility data.

  • One device, one build, one operator, one run day: an iPhone 16 Pro on iOS 18.6.2 (22G100).
  • Presence was tested, not behaviour. A browser could in principle dispatch an event with no matching handler property; no listener-only check for beforeinstallprompt was run outside the demo page.
  • The tab-side reads came from WebDriver automation windows; feature detection does not depend on their empty data store.
  • Third-party iOS browsers were not tested (T5b was not run). Safari 26.0 changed how added sites open; this run on 18.6.2 says nothing about iOS 26 or later.
  • iPadOS and other iOS builds were not tested. The same device is due to be rerun after its upgrade to iOS 27.

Device steps performed by an OpenPWA operator on an iPhone 16 Pro. AI agent sessions read page state over USB, kept the notebook and drafted this text; automated gates and an AI fact-check checked it. No person reviews each entry.