PWA on iPhone: What Works and What Doesn't (2026)
A dated support table for PWAs on iPhone: install, offline, push notifications, badges and what is still missing, from WebKit, Apple and MDN sources.
- Author
- WavX Editorial Team
- Published
- 2026-10-02T09:00:00.000Z
- Updated
- 2026-10-02T09:00:00.000Z
- Organisation
- WavX Solutions
- Telephone
- +919310079927
Description
All articles PWA Web Development Mobile Apps App Development
PWAs on iPhone: What Works and What Does Not (October 2026)
WavX Editorial Team Engineering & delivery team, WavX Solutions
Published 2 October 2026 11 min read 2,649 words
Custom software, built from scratch · Building since 2022 · Gurgaon, Delhi NCR
Part of our App Development guide App Development in India: Cost, Timeline and How to Choose a Partner Summarise with AI ChatGPT Claude Perplexity Google AI
As of October 2026, per the sources below, a progressive web app on iPhone can be added to the Home Screen, open in its own window without browser controls, work offline through a service worker, send push notifications and show a badge on its icon. It cannot show an automatic install prompt, sync data in the background, or reach Bluetooth, NFC or USB devices. Push notifications work only after the user has added the app to the Home Screen.
How this page was compiled. Every row below comes from WebKit's release posts, Apple's developer documentation or MDN's browser compatibility data, all read on 2 October 2026. Safari 27, which ships with iOS 27, was released in September 2026 and is the current version. This is a reading of documentation, not a device test. A checklist for confirming the items that matter to your product is at the end.
Support table: installing and launching
Capability
On iPhone
Since
Notes
Add to Home Screen from Safari
Works
Long-standing
From iOS 26, every site added to the Home Screen opens as a web app by default. The user can switch off "Open as Web App".
Add to Home Screen from Chrome, Edge, Firefox
iOS 16.4
Through the Share menu of those browsers
Automatic install prompt ( beforeinstallprompt )
Not supported
The event exists only in Chromium browsers
Own window ( display: standalone )
iOS 11.3
MDN's data lists fullscreen and minimal-ui as unsupported in Safari
Icons from the manifest
iOS 15.4
Used only when the page has no apple-touch-icon and the icon's purpose is any or unset
Manifest id
Lets the same app be installed more than once
Manifest shortcuts
Listed for Safari on Mac from 17.4, not for iOS
Support table: offline, storage and background work
Service worker and Cache API
The basis of offline support
Storage quota
Around 60% of disk per origin
iOS 17
A Home Screen web app has the same quota as the site in the browser
Persistent storage request
iOS 15.2
Safari decides using heuristics, including whether the site is opened as a Home Screen web app
Navigation preload
Service worker static routing
iOS 27
New in Safari 27
Background Sync
Periodic Background Sync
Background Fetch
Support table: notifications
Web Push
Works, with conditions
Home Screen web apps only; permission must follow a tap; every push must show a notification
Declarative Web Push
iOS 18.4
Home Screen web apps; no service worker needed to display the notification
Badge on the app icon (Badging API)
Home Screen web apps only
Focus modes
Web app notifications follow the user's Focus settings
Action buttons, image and vibration pattern on a notification
MDN's data lists these notification options as unsupported in Safari
Support table: device features
Camera and microphone ( navigator.mediaDevices )
iOS 11
Geolocation
Web Share
iOS 12.2
Screen Wake Lock
iOS 16.4 in Safari, iOS 18.4 in Home Screen web apps
Did not work in Home Screen web apps before 18.4
Web Bluetooth
Web NFC
WebUSB
Vibration API
Contact Picker
Off by default
Behind a preference flag from iOS 14.5
Detect an installed native app ( getInstalledRelatedApps )
Installing: there is no prompt, so explain it
On Android, Chrome fires beforeinstallprompt and a site can show its own install button. Safari does not support that event, and MDN's installability guide states plainly that it is not supported on iOS. On iPhone the user installs by hand:
Open the Share menu in the browser.
Tap Add to Home Screen .
Confirm the name and tap Add .
WebKit's notes for Safari 26 describe what changed last year. Before iOS 26, a site opened as a web app only if it had a manifest with a suitable display value or the older Apple meta tag; otherwise the Home Screen icon opened a browser tab. From iOS 26, every site added to the Home Screen opens as a web app by default, and WebKit describes this as zero requirements for installability in Safari.
Keep the manifest anyway. It still sets the name, icon and start address, and visitors on older iOS versions need "display": "standalone" to get the app window at all.
Since most people do not know the Share menu route, show a hint to iPhone visitors who have not installed yet:
<p id="ios-install-hint" hidden>
To install this app: tap the Share button, then "Add to Home Screen".
</p>
<script>
const isIPhone = /iPhone/.test(navigator.userAgent);
const isInstalled = window.matchMedia("(display-mode: standalone)").matches;
if (isIPhone && !isInstalled) {
document.querySelector("#ios-install-hint").hidden = false;
</script>
If install is not working at all, the checks are in PWA not installing .
Push notifications on iPhone: the exact conditions
Web Push arrived on iPhone in iOS 16.4. It uses the same standards as other browsers: the Push API, the Notifications API and a service worker. The conditions are what catch people out.
The app must be on the Home Screen. MDN's data notes that on iOS the Notification interface is undefined unless the page is a web app saved to the Home Screen. In a Safari tab there is nothing to call.
Permission must follow a tap. Apple's documentation says to give the user a control such as a button and to call the subscription method immediately from that gesture's event handler.
Every push must be shown. Apple states that Safari does not support invisible push notifications, and that if you do not present a notification Safari revokes the push permission for your site.
No developer account is needed. Apple's documentation says you do not need to join the Apple Developer Program to send web push notifications.
Your server must reach Apple's push service. If outbound traffic is restricted, Apple says to allow https://*.push.apple.com .
Once granted, WebKit says these notifications behave like those from other apps: they show on the Lock Screen, in Notification Center and on a paired Apple Watch.
The subscription code is the same as for any browser. The service worker registration is fetched before the click so that subscribe() runs directly inside the tap handler.
// Page script (type="module"). VAPID_PUBLIC_KEY is your server's public key.
function urlBase64ToUint8Array(base64String) {
const padding = "=".repeat((4 - (base64String.length % 4)) % 4);
const base64 = (base64String + padding).replace(/-/g, "+").replace(/_/g, "/");
return Uint8Array.from(atob(base64), (char) => char.charCodeAt(0));
const button = document.querySelector("#enable-alerts");
const pushSupported = "Notification" in window && "PushManager" in window;
if (!pushSupported) {
// On iPhone this is the case in a Safari tab. Ask the user to install first.
button.hidden = true;
} else {
const registration = await navigator.serviceWorker.ready;
button.addEventListener("click", async () => {
try {
const subscription = await registration.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: urlBase64ToUint8Array(VAPID_PUBLIC_KEY),
});
await fetch("/api/push/subscribe", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(subscription),
} catch (error) {
console.error("Push subscription failed:", error);
Declarative Web Push, from iOS 18.4
WebKit added Declarative Web Push in iOS 18.4 for web apps on the Home Screen. The push message itself is a JSON description of the notification, and the browser displays it without running any JavaScript. The format in WebKit's announcement looks like this:
"web_push": 8030,
"notification": {
"title": "Your order has shipped",
"body": "Tap to see tracking details.",
"navigate": "https://www.example.com/orders/1042",
"silent": false,
"app_badge": "1"
WebKit designed it to be backwards compatible: a browser that understands the format handles it itself, and an older browser passes the same message to your service worker. A push handler that reads the same shape covers both:
// In sw.js
self.addEventListener("push", (event) => {
const payload = event.data ? event.data.json() : {};
const note = payload.notification || {};
event.waitUntil(
self.registration.showNotification(note.title || "Update", {
body: note.body || "",
data: { url: note.navigate || "/" },
})
);
self.addEventListener("notificationclick", (event) => {
event.notification.close();
event.waitUntil(clients.openWindow(event.notification.data.url));
Offline and storage on iPhone
Service workers have been in Safari on iOS since 11.3, so the caching rules in service workers and caching strategies apply. Three iPhone-specific points:
Quota is generous, eviction is the risk. WebKit's storage policy, in force from iOS 17, allows an origin up to around 60% of total disk in a browser app, and a Home Screen web app gets the same. WebKit may still evict data when the overall quota is exceeded, when the device is under storage pressure, or when the user has not interacted with the site for some time.
The seven-day rule is aimed at browser tabs. Safari deletes a site's script-writable storage, including service worker registrations and caches, after seven days of Safari use without interaction on that site. WebKit's post introducing the rule says web apps added to the Home Screen have their own counter based on actual use of the app, and that it does not expect their first-party data to be deleted.
An installed app has its own storage. web.dev's installation guide says each installation on Apple devices has isolated storage. Plan for a visitor who was signed in on your site in Safari to sign in again inside the installed app.
Because Background Sync is not available, anything queued offline has to be sent while the app is open. Detect the feature and fall back:
// Page script (type="module"). flushOutbox() sends whatever is queued.
if ("sync" in registration) {
await registration.sync.register("send-outbox");
// iPhone: retry when the app is open and the connection returns.
window.addEventListener("online", flushOutbox);
if (navigator.onLine) flushOutbox();
What the gaps rule out
If your product needs
On iPhone as a PWA
Uploads or sync that finish after the app is closed
Not possible. Work completes only while the app is open.
Bluetooth devices, NFC tags or USB hardware
Not possible. This needs a native app.
A one-tap install button
Not possible. The user must use the Share menu.
Notification buttons such as "Reply" or "Mark done"
Not available. A tap can only open the app.
A listing people can find in the App Store
A PWA is not listed there. This needs a native app.
Content, catalogue, booking, ordering, account pages
Works.
Offline reading of pages already visited
Order and reminder notifications for installed users
Works, from iOS 16.4.
How iPhone support has changed
iOS version
What arrived
11.3
Service workers; display: standalone from the manifest
12.2
15.4
Manifest icons; navigation preload
16.4
Web Push, Badging API, Add to Home Screen from third-party browsers, manifest id , Screen Wake Lock in Safari
New storage quotas; Add to Home Screen from in-app Safari views
18.4
Declarative Web Push; Screen Wake Lock inside Home Screen web apps
Every site added to the Home Screen opens as a web app by default
Service worker static routing API
Support has moved in one direction since 2023, but the missing items in the tables above have stayed missing through several releases. Plan around what exists today.
PWA or native app for iPhone users
Start with how many of your users this affects. Statcounter puts iOS at 6.05% of mobile web usage in India in September 2026, against 93.89% for Android. For a product aimed at the Indian mass market, the iPhone gaps touch a small share of users. For a premium, urban or export audience the share can be far higher, so check your own analytics before deciding.
A PWA is usually enough on iPhone when the product is content, commerce, booking or an internal tool, and when notifications are useful but not critical. WavX builds these under PWA development .
A native app is the better choice when the product depends on background work, hardware over Bluetooth or NFC, App Store discovery, or notifications that must reach every user and not only those who installed from the Share menu. That is mobile app development , and it costs more to build and maintain.
Many products do both in sequence: a PWA first, a native app later if usage justifies it. The broader comparison is in PWA vs native app and website vs app vs PWA . If you already have a site, turning it into a PWA is the smaller first step. The full set of PWA guides is on the PWA development hub .
Check it on your own devices
Documentation and behaviour can differ, and iOS changes several times a year. Before you commit to a plan, run these on a real iPhone and write down the iOS version and the date:
Add the site to the Home Screen from Safari and from one other browser. Does it open in its own window with the right name and icon?
Turn on aeroplane mode and open it. Does the offline page or cached content appear?
Subscribe to push from inside the installed app, lock the phone and send a test message.
Set and clear the icon badge.
Sign in, close the app, wait a week and open it again. Are you still signed in?
Repeat on the oldest iOS version you intend to support.
Sources
WebKit: Web Push for Web Apps on iOS and iPadOS , read 2 October 2026
WebKit: WebKit Features in Safari 16.4 , read 2 October 2026
WebKit: WebKit Features in Safari 17.0 , read 2 October 2026
WebKit: Updates to Storage Policy , read 2 October 2026
WebKit: Full Third-Party Cookie Blocking and More , read 2 October 2026
WebKit: Meet Declarative Web Push , read 2 October 2026
WebKit: WebKit Features in Safari 18.4 , read 2 October 2026
WebKit: News from WWDC25, WebKit in Safari 26 beta , read 2 October 2026
WebKit: WebKit Features in Safari 26.0 , read 2 October 2026
WebKit: WebKit Features for Safari 27.0 , read 2 October 2026
Apple Developer Documentation: Sending web push notifications in web apps and browsers , read 2 October 2026
MDN browser-compat-data, the data behind MDN's compatibility tables , read 2 October 2026
MDN: Making PWAs installable , read 2 October 2026
MDN: Window beforeinstallprompt event , read 2 October 2026
MDN: Offline and background operation , read 2 October 2026
web.dev: Learn PWA, Installation , read 2 October 2026
Statcounter Global Stats: Mobile Operating System Market Share in India , read 2 October 2026
Frequently asked questions
Do PWAs work on iPhone? Yes. As of October 2026 a PWA can be added to the iPhone Home Screen from Safari or another browser's Share menu, opens in its own window, works offline through a service worker and can send push notifications. The gaps are an automatic install prompt, background sync and access to Bluetooth, NFC and USB devices.
Can a PWA send push notifications on iPhone? Yes, from iOS 16.4, with conditions. The user must first add the web app to the Home Screen, the permission request must follow a tap on something like a subscribe button, and every push must show a visible notification. A site open in an ordinary Safari tab on iPhone cannot ask for push permission.
Why does my site not show an install prompt on iPhone? Because iOS does not have one. The beforeinstallprompt event that powers install buttons on Android Chrome is not supported in Safari. On iPhone the user opens the Share menu and chooses Add to Home Screen, so your site has to explain those steps itself.
Does a PWA on iPhone need to be in the App Store? No. It installs from the browser and Apple's documentation says you do not need to join the Apple Developer Program to send web push notifications. The other side of that is that a PWA does not appear in App Store search. If an App Store listing is a requirement, you need a native app.
Is the PWA experience the same on iPhone and Android? No. Android Chrome offers an install prompt, Background Sync and more device APIs. iPhone supports the core: install, offline, push and badges. Build the features that work on both, treat the Android extras as enhancements, and test on real devices from each platform.
About the author
WavX Editorial Team
Engineering & delivery team, WavX Solutions
Written and fact-checked by the WavX Solutions engineering team in Gurgaon, Delhi NCR — the people who scope, price and ship these builds. Costs and timelines quoted here come from projects we have actually delivered, not vendor price lists.
All articles by WavX Editorial Team →
Build your own software — your way, your pricing.
WavX Solutions is here to create your own software in a fully custom way, built exactly how you work — with a pricing model that fits your business. Connect now and let's build it.
Contact Now helpwavx@gmail.com
More on App Development
App Development hub
App Development How to Build a Taxi Booking App in 2026: Owner's Guide
App Development How to Build a Booking App in 2026: Simple Founder Guide
App Development How to Build a Healthtech App in 2026: Founder Guide
App Development How to Build a Social Media App in 2026: Founder Guide
App Development How to Launch Your App on Play Store and App Store 2026
App Development Mobile App vs Mobile Website: 2026 Guide for Owners
Keep reading
Web App vs Mobile App vs PWA: Which Should You Build First?
Read How to Build a Job Portal Like Naukri: Cost & Tech
Read How to Build a Grocery Delivery App Like Blinkit or Zepto
Read How to Protect Your App Idea Before You Build It
Read Native vs Cross-Platform App Development: Startup Guide
Read How Long Does It Take to Build an App? 2026 Timeline
Read How to Create an App in 2026: Step‑by‑Step Guide for Founders
Read App Maintenance Cost Per Year in India (2026 Breakdown)
Read Astrology App Development Cost in India (AstroTalk Model)
Read Home Services App Development Cost in India (2026)
Read Cost to Build an App Like Urban Company (Home Services)
Read Quick Commerce App Development Cost in India (Blinkit/Zepto Model)
Read