{
  "slug": "ios-a2hs",
  "url": "https://openpwa.net/reference/installation/ios-add-to-home-screen/",
  "probe": {
    "href": "https://openpwa.net/reference/installation/ios-add-to-home-screen/",
    "css": {
      "height: 100dvh": true,
      "env(titlebar-area-height)": true,
      "color: oklch()": true,
      "safeAreaInsetsComputed": {
        "bottom": "0px",
        "top": "0px",
        "left": "0px",
        "right": "0px"
      },
      "@supports selector(:has(a))": true,
      "env(viewport-segment-width 0 0)": false,
      "env(safe-area-inset-top)": true
    },
    "navigator.standalone": false,
    "language": "zh-CN",
    "title": "iOS Add to Home Screen | OpenPWA",
    "viewportSegments": {
      "window.viewport": "undefined",
      "window.viewport?.segments": "n/a",
      "getWindowSegments": "undefined",
      "(horizontal-viewport-segments: 1)": false,
      "(vertical-viewport-segments: 1)": false,
      "(vertical-viewport-segments: 2)": false,
      "(horizontal-viewport-segments: 2)": false
    },
    "collectedAt": "2026-10-20T06:54:43.971Z",
    "maxTouchPoints": 5,
    "vendor": "Apple Computer, Inc.",
    "deviceMemory": "undefined",
    "devicePixelRatio": 3,
    "documentElementClient": {
      "w": 402,
      "h": 678
    },
    "outerWidth": 402,
    "pageText": "Skip to content\nOpenPWA\n\n\nOn this page\nHome\n›\nReference\n›\nInstallation\n›\niOS Add to Home Screen\nPlatform in Installation\n\niOS Add to Home Screen\nPublished 2026-06-26\nUpdated 2026-09-22\nBy Carey Gill · Editorial process\nOn iOS and iPadOS the only install route is the user’s own gesture: Share, then “Add to Home Screen”. Safari has offered it since iPhone OS 1; third-party browsers gained it in iOS 16.4; no version fires beforeinstallprompt or exposes an install API (BCD api.BeforeInstallPromptEvent), so the page supplies icons, a name, and a manifest, and the person holding the device decides, on iOS 26 with an explicit “Open as Web App” switch, how the icon launches.\nHow it works\nSection titled “How it works”\nThe gesture is fixed: tap Share, tap Add to Home Screen, optionally edit the name, tap Add. From iOS 16.4 a third-party browser can offer the same item when it holds the com.apple.developer.web-browser entitlement, places a WKWebView showing an HTTP or HTTPS document in the Share sheet’s activityItems, and the device is not a Shared iPad (WebKit, “Web Push for Web Apps on iOS and iPadOS”).\nWhat the icon does when tapped changed between 16.4 and 26:\niOS version\tOpens as a web app (own App Switcher entry, no Safari UI) when\tOtherwise\n16.4 to 18\tThe manifest’s display is standalone or fullscreen, or the legacy apple-mobile-web-app-capable meta tag is yes; the browser that added it does not matter\tSaved as a Home Screen bookmark that opens in the default browser\n26\tBy defaul",
    "declarations": {
      "manifest": null,
      "appleCapable": null,
      "appleTitle": null,
      "appleTouchIcon": [],
      "viewportMeta": "width=device-width, initial-scale=1",
      "themeColor": null,
      "appleStatusBarStyle": null,
      "icons": [
        "/favicon.svg"
      ]
    },
    "platform": "iPhone",
    "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 18_6_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Mobile/15E148 Safari/604.1",
    "hardwareConcurrency": 4,
    "innerWidth": 402,
    "outerHeight": 874,
    "visualViewport": {
      "offsetTop": 0,
      "height": 678,
      "scale": 1,
      "offsetLeft": 0,
      "pageTop": 0,
      "width": 402
    },
    "displayModes": {
      "standalone": false,
      "fullscreen": false,
      "picture-in-picture": false,
      "minimal-ui": false,
      "browser": true,
      "application": false,
      "window-controls-overlay": false
    },
    "mediaQueries": {
      "(dynamic-range: high)": true,
      "(color-gamut: p3)": true,
      "(prefers-reduced-motion: reduce)": false,
      "(prefers-color-scheme: dark)": false,
      "(pointer: coarse)": true,
      "(prefers-contrast: more)": false,
      "(orientation: portrait)": true,
      "(hover: hover)": false
    },
    "innerHeight": 678,
    "languages": [
      "zh-CN"
    ],
    "screen": {
      "height": 874,
      "availHeight": 874,
      "angle": 0,
      "width": 402,
      "availWidth": 402,
      "colorDepth": 24,
      "orientation": "portrait-primary"
    },
    "features": {
      "'wakeLock' in navigator": true,
      "'clearAppBadge' in navigator": false,
      "'windowControlsOverlay' in navigator": false,
      "'xr' in navigator": false,
      "'DigitalCredential' in window": false,
      "'periodicSync' in ServiceWorkerRegistration.prototype": false,
      "'BeforeInstallPromptEvent' in window": false,
      "'PaymentRequest' in window": true,
      "'hid' in navigator": false,
      "'showOpenFilePicker' in window": false,
      "'clipboard' in navigator": true,
      "'documentPictureInPicture' in window": false,
      "typeof Notification.requestPermission": "undefined",
      "canShare({files:[txt]})": true,
      "'storage' in navigator": true,
      "'usb' in navigator": false,
      "'serial' in navigator": false,
      "'CookieStore' in window": true,
      "'PushManager' in window": false,
      "'bluetooth' in navigator": false,
      "'share' in navigator": true,
      "'Notification' in window": false,
      "'setAppBadge' in navigator": false,
      "typeof window.pushManager?.permissionState": "function",
      "canShare({url})": true,
      "'startViewTransition' in document": true,
      "'screen.orientation.lock'": "undefined",
      "'requestFullscreen' in documentElement": true,
      "'navigation' in window": false,
      "'showDirectoryPicker' in window": false,
      "'install' in navigator": false,
      "'virtualKeyboard' in navigator": false,
      "'onbeforeinstallprompt' in window": false,
      "'pushManager' in window": true,
      "'cookieStore' in window": true,
      "typeof navigator.install": "undefined",
      "serviceWorkerRegistrations": [
        {
          "scope": "https://openpwa.net/lab/device-tests/",
          "state": "activated",
          "active": true
        }
      ],
      "'canShare' in navigator": true,
      "storage.estimate()": {
        "quota": 1048576000,
        "usage": 30
      },
      "'credentials' in navigator": true,
      "'navigationPreload' in ServiceWorkerRegistration.prototype": true,
      "'ViewTransition' in window": true,
      "'scheduler' in window": false,
      "serviceWorker.controller": false,
      "'showSaveFilePicker' in window": false,
      "'userActivation' in navigator": true,
      "PushManager.supportedContentEncodings": "n/a",
      "'NDEFReader' in window": false,
      "typeof window.pushManager?.getSubscription": "function",
      "'BroadcastChannel' in window": true,
      "'onappinstalled' in window": false,
      "storage.persisted()": false,
      "Notification.permission": "n/a",
      "'getInstalledRelatedApps' in navigator": false,
      "'contacts' in navigator": false,
      "'webkitRequestFullscreen' in documentElement": true,
      "'sync' in ServiceWorkerRegistration.prototype": false,
      "'mediaSession' in navigator": true,
      "'getBattery' in navigator": false,
      "'PublicKeyCredential' in window": true,
      "typeof window.pushManager?.subscribe": "function",
      "'vibrate' in navigator": false,
      "'IdentityCredential' in window": false,
      "'launchQueue' in window": false,
      "typeof navigator.storage?.getDirectory (OPFS)": "function",
      "typeof navigator.storage?.persist": "function",
      "'serviceWorker' in navigator": true
    }
  }
}