Fair enough, but if you opt-in why should you be forced to re-opt-in all the time. This should be a setting that does not expire. In the end it cripples the service and people quit using it as a result of having to repeat all those steps on a regular basis.If a site force me to enable push notifications I'll never use that site again.
Push notifications is an awful idea that quickly got taken over by scammers and ad companies.
It's the first thing I disable in a browser and I sleep very well.
Right, being stored in the browser makes it subject to being timed out, this happens to all of the users on my site. If this were a tick in the DB it would be a set it and forget it setting.There is no forced opt in in XF - it's up to each member whether they want to allow them or not.
The push notification approval is stored in the browser.
If members are being prompted to sign up again then it's either a browser issue, or they have removed the push notification setting for the site.
It doesn't work like that.If this were a tick in the DB it would be a set it and forget it setting.
XF does not control the specifications for push notifications and how browsers handle them.This feature is indeed crippled by design.
Notification.permission = "granted"
already). Chrome (probably other browsers too, but I'm only testing with Chrome and Safari right now) does not require a user gesture to re-enable push notifications.For now… Safari doesn’t allow tend to be first with tightening security/privacy. I wouldn’t rely on other browsers not following suit.Figures it's a Safari only issue
Indirectly, ya… because of the same reason. XenForo deletes push subscriptions on its backend if the user isn’t logged in, rather than flag it as inactive.Could also be user is clearing cookies when exiting browser or running a program that does it.
Thank you, this is really useful.The reason iOS users “lose” their push notification subscriptions with the PWA is because XenForo is relying on a browser’s willingness to resubscribe to the push notification without human interaction (a click for example). iOS/Safari doesn’t allow this, so push notification subscriptions are lost if you need to reauthenticate (logging into admin or redoing your two-step auth after 30 days).
See:
So a little more digging today on the lost push notifications. It does appear that push subscriptions are lost for Safari (desktop version as well as PWA) due the above (more specifically, Safari requires a user gesture to re-enable push notifications even ifNotification.permission = "granted"
already). Chrome (probably other browsers too, but I'm only testing with Chrome and Safari right now) does not require a user gesture to re-enable push notifications.
So in the case where a two-step auth (maybe other places as well) unsubscribes from notifications, only to resubscribe...
Was able to work-around XenForo’s behavior (mostly) with this addon:
Add some missing things to XenForo's progressive web app
…but the “right” thing to do is for XenForo to not rely on a browser’s willingness to subscribe to push notifications without human interaction.
Which is used by nearly all iOS users who want to use Xenforo notifications as it relies on it for the push.Figures it's a Safari only issue
Easy solution:Which is used by nearly all iOS users who want to use Xenforo notifications as it relies on it for the push.
Also future-proofs the situation where other browsers decide maybe it’s not such a great idea to allow push subscriptions without a user triggered event (like a confirmation or click).Easy solution:
Don't use Apple hardware and enjoy proper PWA support
That being said, it really would be nice if XenForo just disabled push subscriptions in the DB instead of deleting them.
You bet, there are only 1.46 billion of them, I'll get a memo out.Easy solution:
Don't use Apple hardware and enjoy proper PWA support
That being said, it really would be nice if XenForo just disabled push subscriptions in the DB instead of deleting them.
We use essential cookies to make this site work, and optional cookies to enhance your experience.