Push Notifications, WebXR, and better PWA support coming to iOS
firt.dev
firt.dev
Some things that it enables:
- Low-friction asynchronous turn-based games (think “Words with Friends” but you don't have to install an app)
- Single-purpose alerts (like CamelCamelCamel) or stock alerts without cluttering your email inbox
- Easily scriptable notifications from your own code (I run notify.run which provides an HTTPS-to-WebPush bridge so you can send yourself a push notification from curl)
- Getting notifications from websites I want notifications from
This should not be impossible just because there are 5 trillion websites I don't want notifications from.
- Hey, it seems like you want to use our notification feature, and we are delighted. For us to be able to push you messages, you need to set out trust level to "App", to do this...
I mean, nobody will open a menu and click on 3 things for a spammy website, but many people will do it for their favorite 3 sites.
- Clicking on this button will trust this website (example com) as an [App] and give it the ability to store information on your device, and send you notifications. Please don't do this for the sites you don't trust. [Cancel] [I trust this website]
Our grandparents can run random executable from the internet and with some common-sense training and scary popups from anti-virus and UAC, it is still risky but tolerable. This is way more secure and easier, why cant this work?
- You already trust this app (example com) and it can already store information on your device and send you notifications. Clicking on this button will add it to your trusted apps and allow it to ask for files stored on your device by other apps, and also allow it to ask to access your contacts. These permissions will be only available when you are actively using the app. [Cancel] [Add example com to trusted apps]
Please some browser implement this.
It collects feedback from users. If a site got rejected by literally every user. It will be put into the `don't even bother prompt the users` list.
And start from this point.
No edge user will be prompt actively by that site (There will still be a icon on the url bar. If the user really really want to enable it, he can click it himself).
eg: https://blog.hurree.co/blog/ios-push-notification-permission...
You remove it from your home screen and the notification permission disappears.
The bugs related to notifications currently seen in the beta are due to this user interaction not yet being implemented I'd bet.
The good thing about the Apple Appstore, that promotional/marketing push notifications are forbidden and will get your App banned from the Appstore. Just allowing generic WebPush on PWAs will result in companies requiring it with dark patterns, just to increase your "engagement" with their product (read: send you spam).
I have mixed feelings about webpush, I myself as a developer want it for my users, but I see the history of the web and how everything nice got destroyed eventually by spam.
Not anymore they’re not. It wasn’t enforced when it was on the books; last year the rule was removed. Even Apple advertise their own services via push now.
A site can refuse to give you content if you don't allow push notifications but in practice that doesn't happen because the incentive of the site is to have more traffic. Android has had this capability for an eon and I have never experienced a site try to force you to accept push notifications.
I have also never observed a site try to use push notifications as a "verification" method. Do you have an example of this in the wild?
And you can always control your allowance of push notifications after the fact, either at the moment you receive the offending notification or from the site settings. Android specifically has a fantastic way to do this without even leaving your notification area. Not sure how Apple's system works in that regard.
The real problem is that corporations treat all users as idiots who can’t control their software. But a big part of them are not. These talks about users unable to setup their devices (or to get help from someone who can) is nonsense they want us to believe in. And I see signs everywhere that most of software-versed people already believe in it. Feels like seeing sophisticated math proofs, all based on 1+1==3 for some reason.
Lol, no it won't.
Apple do promotional notifications themselves even.
I hate that a regular website I may tap on a search result would ever want to send me notifications. But, if a site that is clearly more of an “application” to me (like an online spreadsheet or chat app, etc) wants to send me notifications, that could be a useful feature.
If there were a more clear delineation between the two, I could just avoid tapping anything that is labeled as an “app” in search results (or just ban them from my search engine), and restrict myself to “plain old webpages” only when searching. And “plain old webpages” would be even further restricted than they already are: No notifications prompts, no ability to see my accelerometer, no offline storage available, etc etc.
It’s nice that the web has turned into a viable app platform, but it doesn’t mean I want every page I visit to be allowed to have “app-like” capabilities. In an ideal world 95% of the web would just be plain old documents accessed over HTTP(S) and the “apps” would be distinguishable as such.
When a related app is available in the App Store, Apple will show a big banner at the top of the web page encouraging you to install it... but they won't do anything for a PWA.
I think requiring "installation" of a PWA is a great way to balance the concerns people have about getting spammed with requests to spam you with notifications you don't want... but I also wish Apple would support PWAs better in general, so I can see it both ways.
One way to do this would be for the crawler to compare the content of JS-enabled and JS-disabled states and if they differ dramatically, the web destination gets tossed in the “web app” bucket.
If you read that HTML in a text editor then yeah, that's not an app but if you're reading it in a web browser you're "running it".
1) Tracking preferences overlay that will have a wall of text with "Accept all" and "Customise" buttons that would not be clickable the first few tries.
2) Then you will have a modal that asks for your e-mail address so you can receive the newsletters from the website that you are trying to understand what is this all about.
3) And now you will have a prompt that asks you if you like to receive notifications.
4) Once you are done with all this, half of the page will be covered with links and menus to the other parts of the website and when you scroll menus and overlays with call with action will appear and disappear
5) The rest of the website will be ads.
6) Hopefully somewhere there will be an image or paragraph, you will be able to find it if you still remember why you click on the link
7) if you scroll a bit too much the screen will be blacked out and a call for action(sign up for a newsletter, create account, download the app or buy something) will appear and will have hard to identify close button that won't be working the first few taps.
My point is, the Web is not a garbage because Safari lacks notification or something like that and it is not salvageable without finding a new business model.
Wouldn't be great to have a notification once the new Wordle of the day arrives? Sure. But the business model of it appears to be selling it to the people who love all the steps from 1 to 7 listed above. I don't blame the creator of the game, it's just a testament of the state of the Web business.
I prefer apps for that reason. They also seem to be riddled with full screen ads(especially the casual games are horrible) that make your phone warm BUT you get yo see a high quality screen(App Store, Google Play etc.) where you can read reviews, description and see screenshots before committing into installing the app(Unlike the web apps where you first "install" the app and then you are on your own to figure out what is this all about).
Besides the questionable practices of Apple/Google, there's barely any reason to have browsers with PWA capabilities. I would love it if the web browsers had JS off by default and load JS only when the user explicitly requests it.
Most of the noise comes from Web technologists don't want to learn anything beyond JavaScript.
I hope Apple doesn't cave and if they do, I hope they implement it in a way that improves the experience of the USER. If I wanted an Android experience, I would have used an Android phone, let's keep the iPhone experience like a iPhone experience.
Nitpick, but for that specific example, not really, since it's always at local midnight according to your device's time setting (for certain values of "arrive", since all past and future wordles are always present in the page source).
[EDIT] Oh and:
> Besides the questionable practices of Apple/Google, there's barely any reason to have browsers with PWA capabilities. I would love it if the web browsers had JS off by default and load JS only when the user explicitly requests it.
I think the biting of the apple, if you will, for the web, was allowing Javascript to ever initiate requests on its own, or modify e.g. post request content or URLs pre-flight without user review and explicit OK. It's fucking absurd that clicking a link to a site means it gets to track your mouse movements and send them, live, to some server somewhere, and that disabling that means wrecking most of the web and making it a pain to use. No transmitting data without explicit user action and review, I say.
I agree with a lot of what you wrote, but not this. PWAs are the only path for allowing open publishing of apps that is not gated by a large tech firm. While I completely understand the value proposition of app stores, there are tons of app scenarios held back by them. Two instances are small web[0] and situated software[1] as app stores keep people from publishing apps meant for small audiences by their very definition. Both of these fall under your desire to maximize the user experience.
Furthermore, PWAs are the closest thing we have to a “universal” platform. Personally, if I could write an app that worked on all mobile devices and the web in COBOL, I’d be thrilled to write “PROCEDURE DIVISION” every day.
The web is a mess because it is open. The web can be scammy because some people are scammy. Restricting PWAs doesn’t mitigate scamminess - it just restricts openness.
[0] https://ar.al/2020/08/07/what-is-the-small-web/ [1] https://www.gwern.net/docs/technology/2004-03-30-shirky-situ...
At any point Google or other browser makers can choose not to be nice or can be compelled to follow regulatory orders.
The only universal thing about PWAs is the availability of Google Chrome to all major platforms and that's up to the courtesy of Google. They may choose not to do it at any time, they may choose to discontinue their push notification backend just like that.
Browsers are not standalone apps anymore, they are dependent on the backend services of the browser company. That's especially important when they need to run PWA.
Replace Apple/Safari+Google/Chrome with Google/Gmail+Microsoft/Outlook and you currently describe e-mail. That situation is still preferable to the tons of messaging walled gardens. And the web is getting new feature albeit slowly and unevenly in a way that mail is not.
I don't think those sites get penalized much either. I arrived via search or a link and they don't get demoted in search or have that link removed. I can't flag them as being a bad site or "take back" my view. I find it very frustrating.
The article speculates that it might not be freely available like push notifications are for firefox/chrome.
>Maybe we have to register the origin with the Apple Developer Program, similar to the Safari Push Notification program for macOS. If this is the case, the developer will have to pay the annual Apple Developer Program fee to send push messages to their web users.
In that case you're probably better off installing a notification app from the appstore to handle it, eg. pushover/pushbullet.
I think all developers think that their site is somehow unique in the value of their notifications, despite all evidence to the contrary.
> Opus audio decoder (enabled)
Considering the track record of codec support, I bet it only works when packaged as CAF, singed by QuickTime, and played during the daytime to a limited audience... I joke, but the amount of gotchas I encounter while working with WebAudio API is mindboggling and reminiscent of good ol' days of IE6. Would you guess that despite all three browsers declaring support for audio recording (MediaSource API) and all three supporting opus on paper, there is no way to produce the same opus file in all three? Safari only supports playing opus in <audio> tag, no recording; Chrome doesn't support ogg, and while both Chrome and FF allow you to record opus in webm container, the resulting file is not seekable... There are of course third-party solutions, but it's just sad to watch in the century of the fruitbat.
Off topic, I know, but what in the world does this mean? I did a quick search and couldn't figure it out.
Sorry for the confusion, I'm high on caffeine.
It really is sad that something so simple is so hard. I refuse to pay 10 cents a minute to a third party.
There are issues reported with the latest iOS, though.
If you have a textarea or input inside a `overflow:scroll` and scroll it out of view or have a `position:fixed` element over it, the text caret or text selection hi-light remains visible outside/above other elements. It's incredibly frustrating for developers of PWA and apps built will frameworks touch as Ionic - it result in text carets and selections being rendered over the top of toolbars and menus.
Effectively the text caret and selection hi-light are drawn above all elements on the page with no detection as to if they should be hidden behind an element or are outside a visible scroll area.
A few adjustments to the model and here we are with lots of native code and big money... but still, folks requesting updates to the the browser to support more app-ish functionality. I'm glad; the browser can do a lot and we kind of miss that in many mobile contexts.
I also think the elusive "run almost anywhere" is viable in many cases when the browser gets powerful enough. (Of course, I said that about the JVM years ago, so what do I know?)
Also, the Linux community wasn't against Java per se (not until Oracle bought Sun anyway) it's just that writing Java was a huge/complicated undertaking compared to say, Python and managing JREs was a huge pain in the ass. The old joke was, "By the time you have Eclipse open I will have completed the program in Python."
Lastly, mono was enormous (and still is)! Talk about bloated! When mono was being most actively pushed on the Linux community back in the day there was just no benefit: For smaller things you had shell scripts and Python. For larger programs you had C/C++, Java, and... Python :D. Why would you go through the hassle (and it was a huge hassle) of using mono when those other languages provided better performance with much lower friction/barrier to entry? It didn't have much of a "selling point" as it were.
Sure Java apps start slower then C apps but I am talking about Pro apps, an app you start in the morning when you start your job and close it when you are done, I don't care is a bit slower. I am also playing games in Wine and when I have foudn modding tools in Java that work natively in Linux I thank in my mind the dev that he was not a Java hater.
But yes, Linux communities most of the time did not care to have theyr apps to work or look native in Windows. So today if I would like to make a quick and dirty Linux app with a simple GUI I am not sure what to use, maybe Electron it would probably give me less issues as a dev(but this is personal opinion since I dislike Python syntax and I don't like to go low level if I don't have too)
[EDIT] Oh, and it had to compete with Flash and Shockwave, which had (barely) fewer issues with plugin breakage, very nice authoring tools (still unmatched, AFAIK?), and, despite having crap performance, still performed better than Java applets. Plus a whole lot more fun things used them so normal people had a motivation to install them.
Literally the expectation was you'd be a web app - html + js.
Everyone said that wasn't acceptable so they added native apps, and now everyone says native apps are terrible and everything should be web apps. It seems like apple can't win.
I'm proud to announce i was wrong. It's actually 15 years too late, since it was promised in 2007.
https://en.m.wikipedia.org/wiki/Progressive_web_application
I suppose increased regularisation worldwide has something to do with it to announce it again.
I'm curious which features they will lag now...
WebXR has been great for my app at work, but we're basically locked into the Quest 2 right now because Mozilla dropped the ball on WebXR support. Oculus is the only one doing significant VR work with WebXR in their Oculus Browser, which is a Chromium build that they keep proprietary.
On the other hand, not jazzed to have debug what they managed to break in indexedDB this time round...
As someone posted elsewhere in the thread, I hope Apple restricts requests to sites you've added as an "app" already. And I hope they find a way to keep sites from being able to tell you've "installed" them, so actually-useful sites or ones that I have no choice but to use (work, kids' school stuff) can't refuse to operate until I do that (I dunno, maybe they already do, I never "install" sites)
Personally, I don't use the native Twitter app anymore. I use the web version of Twitter, installed as an app, complete with shortcuts in my launchers. I have web notifications turned on and the experience is nearly identical to the native app. But there are little details that I think make it a better experience, like haptic feedback on mobile when clicking the Like button, or being able to select subsections of text on the screen. I have this on my Android phone, my Linux laptop, my Windows desktop, and my Mac Mini. It's exactly the same interface, everywhere, whereas the native app is ever so slightly different from the web app.
I have a lot of sites that I've installed as apps on my computers and it's great: SoundCloud, LiChess, HBO Max, NetFlix, Azure Portal, TeamWork, a couple of different WebGL games, my own management interface for my app at work. It's all basically just a shortcut to the site, without the URL bar chrome. I like it a lot more than using tabs.
Nothing to be excited about yet.