You have only three main options to get push notifications working on iOS for a PWA. In both cases, you must register an App ID on Apple Developer portal, with permission to the appropriate service. For Option 1, your registered App ID must have permission to Apple Wallet. For options 2 and 3, you must have permission to Push Notifications. In both cases, you should record your Bundle ID and Team ID in case you need it later.

  • Option 1 (Easier): Use PassKit to set up a generic Apple Wallet pass, which can broker notifications that are very similar to native ones. Here's some documentation, and here's a working demo of how this can send push notifications to registered devices.

  • Option 2 (Harder): Use Firebase Cloud Messaging or a package like Node-APN to send push notifications the "proper" way, signed with a P12 or P8 key from the Apple Developer Portal. This gets tricky mainly because you need the iOS device identifier, which is only exposed to applications installed natively. I'm afraid I don't have an answer on how to get this device ID from within a PWA, and without it, this method doesn't work.

  • Option 3 (not a PWA): You can use an App ID with a provisioning profile and either a P12 or P8 key, similar to the previous option, but you wrap your application in Apache Cordova, and distribute it (either through the public app store, or using MDM software and via the private Apple Business Manager).

Those are your options. I have exhausted every possible avenue researching this, and I am confident that these will remain your only options through at least the next several months. It's possible we may see further support for Web Push or perhaps just a way to get the device ID from the web in the future, but until that time, this is it. There aren't any other ways to go about this presently.

Source: I architect and develop apps for major brands like Subway, Gartner, Morgan Stanley and PwC (among many others). My research is very recent, and includes direct communication with the head of WebKit at Apple, and also with one of the world's foremost PWA and iOS experts.

Answer from Crates on Stack Overflow
🌐
Engage Lab
engagelab.com › blog › ios-web-push-notifications
iOS Web Push Notifications: Overview, Set Up & Optimization
April 30, 2024 - This feature was short-lived for EU users, as Apple removed the support for web-push notifications with the iOS 17.4 release to comply with the EU's Digital Markets Act (DMA). The rest of the world can still enjoy iOS 16 web push notifications.
🌐
MagicBell
magicbell.com › blog › best-practices-for-ios-pwa-push-notifications
4 Best Practices for iOS PWA Push Notifications
Users in the EU can still open Home Screen web apps, but they’ll have to open them within a browser window rather than as a stand-alone app. Another blow is that opening PWAs within a browser means those apps won’t have certain functions, most notably push notifications. What does this mean for developers? When designing iOS PWA push notifications, it’s important to keep in mind that they won’t reach iOS users in the EU.
🌐
Batch
help.batch.com › en › articles › 7234414-how-do-i-enable-ios-web-push-notifications-on-my-website
How do I enable iOS Web Push notifications on my website? | Help Center — Batch
If configured, Batch Web SDK will show a UI component prompting you to subscribe to notifications. Subscribe and you should see the iOS permission request. You're done! As the Safari Inspector is not available for installed PWAs, you will need to add a way (hidden button, secret tap sequence, etc...) to call the batchSDK('ui.showPublicIdentifiers') javascript method so that Batch displays the Installation ID needed to test your Web Push notification.
🌐
Apple Developer
developer.apple.com › forums › thread › 732594
PWA push notifications on iOS | Apple Developer Forums
I've resorted to checking navigator.userActivation, which was also added in 16.4, as a workaround to display the "Add to Home Page" message.
Top answer
1 of 6
159

You have only three main options to get push notifications working on iOS for a PWA. In both cases, you must register an App ID on Apple Developer portal, with permission to the appropriate service. For Option 1, your registered App ID must have permission to Apple Wallet. For options 2 and 3, you must have permission to Push Notifications. In both cases, you should record your Bundle ID and Team ID in case you need it later.

  • Option 1 (Easier): Use PassKit to set up a generic Apple Wallet pass, which can broker notifications that are very similar to native ones. Here's some documentation, and here's a working demo of how this can send push notifications to registered devices.

  • Option 2 (Harder): Use Firebase Cloud Messaging or a package like Node-APN to send push notifications the "proper" way, signed with a P12 or P8 key from the Apple Developer Portal. This gets tricky mainly because you need the iOS device identifier, which is only exposed to applications installed natively. I'm afraid I don't have an answer on how to get this device ID from within a PWA, and without it, this method doesn't work.

  • Option 3 (not a PWA): You can use an App ID with a provisioning profile and either a P12 or P8 key, similar to the previous option, but you wrap your application in Apache Cordova, and distribute it (either through the public app store, or using MDM software and via the private Apple Business Manager).

Those are your options. I have exhausted every possible avenue researching this, and I am confident that these will remain your only options through at least the next several months. It's possible we may see further support for Web Push or perhaps just a way to get the device ID from the web in the future, but until that time, this is it. There aren't any other ways to go about this presently.

Source: I architect and develop apps for major brands like Subway, Gartner, Morgan Stanley and PwC (among many others). My research is very recent, and includes direct communication with the head of WebKit at Apple, and also with one of the world's foremost PWA and iOS experts.

2 of 6
39

I just want to let you all know: Apple will support push notifications for web apps! This news was published at the WWDC2022. Apple will release Web Push with Safari 16 on macOS (Ventura) in a few months (2022) and for iOS and iPadOS in 2023.

See: https://webkit.org/blog/12945/meet-web-push/

🌐
Pushpad
pushpad.xyz › blog › ios-special-requirements-for-web-push-notifications
iOS special requirements for web push notifications - Pushpad
In particular, if a user opens ... do anything to avoid that. Even the localStorage of the PWA is separate from that of the browser, so there isn't any workaround for this....
Find elsewhere
🌐
XDA Developers
xda-developers.com › home › phones, smartwatches, and everything else › how to enable safari push notifications on iphone or ipad
How to enable Safari push notifications on iPhone or iPad
October 3, 2024 - After that, you'll need to manually add each website you'd like to receive notifications from to your Home Screen. Here's how: Launch the Safari app and visit the website you'd like to receive push notifications from.
🌐
iZooto
izooto.com › ios push notifications › ios push notifications on web is now live with ios 16.4
iOS Push Notifications on Web Is Now Live With iOS 16.4
November 8, 2024 - Most push notification service providers extended support for push notifications on Safari for macOS. This wasn’t possible on iOS. Apple’s support for web push notification standards, as adopted by other browsers such as Google Chrome, Mozilla Firefox, and Microsoft Edge, will simplify work for developers.
🌐
Firt
firt.dev › ios-15.4b
Push Notifications, WebXR, and better PWA support coming to iOS - firt.dev
There are two new experiments on iPadOS and iOS 15.4: "Built-In Web Notifications" and "Push API," both disabled by default in the latest beta.
🌐
Developer Guide
developers.moengage.com › hc › en-us › articles › 13906923326100-Safari-Web-Push-for-iOS-and-iPadOS
Safari Web Push for iOS and iPadOS – Developer Guide
To enable web push notifications for iOS and iPadOS, import the MoEngage service worker and place it in the root file. This step is the same as that of the normal web push notifications integration.
🌐
GitHub
github.com › firebase › firebase-js-sdk › issues › 8010
iOS Web Push Device Unregisters Spontaneously · Issue #8010 · firebase/firebase-js-sdk
December 19, 2023 - People mention this can be a cause, Silent Push can cause your device to become unregistered: https://dev.to/progressier/how-to-fix-ios-push-subscriptions-being-terminated-after-3-notifications-39a7 · Safari doesn’t support invisible push notifications. Present push notifications to the user immediately after your service worker receives them. If you don’t, Safari revokes the push notification permission for your site. https://developer.apple.com/documentation/usernotifications/sending_web_push_notifications_in_web_apps_and_browsers
Published   Feb 05, 2024
🌐
Reddit
reddit.com › r/pwa › push notifications on safari ios
r/PWA on Reddit: Push Notifications on Safari IOS
January 25, 2024 -

A good portion of my PWA users use Safari on iPhone, but I can't figure how to make Push Notifications work os IOS Safari, they work perfectly on chrome for android and windows. But nothing I've tried seems to works on IOS Safari, on apple.developer docs it just say you should use the push notification API and it should work, it didn't, tried following some tutorials, nothing worked, tried using Firebase Messaging Cloud, also didn't work. I know probably I'm doing something wrong, but it's very hard to debug on an iPhone. Even demos like https://webpushtest.com/ or https://progressier.com/pwa-capabilities/push-notifications do not work properly. Do anyone have an example or demo that really works for IOS Safari, for me to look and see what I'm doing wrong?

🌐
Pushowl
docs.pushowl.com › en › articles › 7222014-web-push-notifications-on-ios
Web push notifications on iOS | PushOwl Help Center
​ · Please ensure that you have not muted notifications on your iOS devices, examples: Please check if your device has not enabled “Focus” mode. Please check if you have Settings > Notifications > Scheduled Summary > OFF.
🌐
PushEngage
pushengage.com › home › docs › getting started › setting up web push notifications on ios and ipados
Setting Up Web Push Notifications on iOS and iPadOS - PushEngage
April 16, 2025 - The users must be on iOS or iPadOS 16.4 or later. The user needs to install the web app to their Home Screen by tapping the Share button to open the Share menu, and then tapping “Add to Home Screen”. A user gesture, such as a click or tap on a button is required to show the native permission prompt and allow the permission to receive push notification.
🌐
GitHub
github.com › kosmigramma › appleshouter
GitHub - kosmigramma/appleshouter: iOS Push Notifications for PWAs and Web apps
You might have figured out that Safari on iOS STILL has no support for the Web Push API. You might have considered making a web wrapper around your app just to get notifications working on iOS.
Starred by 223 users
Forked by 2 users
Languages   JavaScript 99.0% | Dockerfile 1.0%
🌐
Dev Docs
docs.webengage.com › docs › web-push-for-ios
Web Push for iOS
For receiving web push notifications on iOS devices, the end users need to update the WebEngage SDK and add your website to their Home screen.
🌐
Frizbit
frizbit.com › home › blog › marketing tools › ios web push notifications: everything you need to know
iOS Web Push Notifications: Everything You Need to Know
July 4, 2024 - Remember, when users subscribe to notifications via Safari, they receive alerts even when the browser is not active. The good news is that, you don’t need an app to send push notifications. Here is an example of how an iOS web push notification looks