How iOS 16.4 Enables Web Push Notifications
Apple's release of iOS 16.4 marked a major shift for mobile web development by adding native-like push notification support to Progressive Web Apps (PWAs) installed on the Home Screen. This update implemented core W3C web standards directly into WebKit, bridging the functionality gap between standard website wrappers and native iOS applications. Below is an overview of how the technical framework operates, the requirements for both users and developers, and how web notifications integrate into the broader iOS ecosystem.
Standardized Web Technologies via WebKit
Before iOS 16.4, Apple restricted push notifications exclusively to native applications distributed via the App Store. To change this, Apple updated WebKit—the engine behind Safari and all web rendering on iOS—to support the same standard web specifications used across desktop browsers:
- Push API: Allows web applications to receive messages sent from a server, even when the web application is not actively running.
- Notifications API: Handles the visual display of the received push data as a system alert.
- Badging API: Allows developers to display and update a numerical count on the web app's icon, similar to native app badges.
- Service Workers: Background scripts that listen for
pushevents and trigger the display of notifications without opening the browser.
The APNs Integration
Instead of developing a separate delivery pipeline, Apple integrated web push directly into the Apple Push Notification service (APNs).
When a user grants permission for a web app to send notifications, the browser engine generates a unique push subscription endpoint linked to APNs. When a developer's server sends an alert using standard Web Push protocols (VAPID authentication), it communicates with APNs. APNs then routes the payload directly to the device, waking up the app's Service Worker in the background to handle and display the notification.
Prerequisites: The Home Screen Requirement
To prevent malicious websites from spamming users with background notifications, iOS 16.4 enforces specific security and contextual restrictions:
- Add to Home Screen: Web push does not work within standard browser tabs. A user must first bookmark the website to their Home Screen using the "Add to Home Screen" action (supported via Safari and supported third-party browsers).
- Explicit User Gesture: A web app cannot automatically request notification permissions upon loading. The permission prompt can only be triggered in response to an explicit user interaction, such as tapping a "Subscribe" or "Enable Notifications" button.
- Manifest File: The site must include a valid Web
App Manifest configured with the
display: standaloneordisplay: fullscreenproperties to behave as an independent application.
Native System Integration
Once authorized, Home Screen web app notifications behave identically to native app notifications. They appear on the Lock Screen, in the Notification Center, and on paired Apple Watches. Furthermore, users maintain full control over these notifications through the native iOS Settings app, where they can manage sound, alerts, and Focus Mode rules per web app.