You read correctly. For years, the most requested feature may finally be coming to iOS and iPadOS: Web Push and Web Notifications. But there is great news:
- Currently this is an experiment with disabled by default
- There are APIs, but they don't work ;)
There are two new experiments on iPadOS and iOS 15.4: Embedded Web Notifications and Push API, both disabled by default in the latest beta.
The feature is disabled by default in the latest beta, which may say it won't ship now, and we might have to wait a couple of months for iOS 16 or later.
API available but not working
However, I haven't been able to get this to work. The issue seems to be related to permissions, as permissions are always denied without seeing any permission dialog prompt, whether it comes after a user action or not.
The latest version of Safari technology for macOS does have a notification dialog working, and even when this permission is granted, you can't get the Push subscription object from Safari, "Push permission was denied" is the only message I could get. This could be for several reasons:
- They are finalizing the API, and during subsequent betas, the iOS permissions dialog will finally appear.
- There are some user requirements that we don't yet know what the API will allow, like site engagement or something like that.
- There are some source-based API usage requirements that we don't know yet. We may need to register the source with the Apple Developer Program, similar to the Safari Push Notification program for macOS. In this case, the developer will have to pay an annual Apple Developer Program fee to send push messages to their web users.
You can see a lot of web push testers online like Push Notification Demo finding support but permission is always denied.
Permission always denied without any UI permission dialog
The API is visible in both Safari and installed PWA in the latest beta. However, I don't know if Web Push will be available for installed PWAs or not as they use isolated storage from Safari and there might be some implementation issues.
We'll have to wait for someone from Apple to say something about it :(