Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The weirdest thing about this is that Apple News still hijacks links to Atom/RSS feeds - so if you click on one of those links in Mobile Safari you'll be bounced to the News app, which will then display an error.

Here's a video I recorded of this behaviour: https://twitter.com/simonw/status/1210622908143415297

I think I'd rather they displayed a dump of ugly XML in the browser, just so I could copy and paste the URL into a feed reading app (I quite like Reeder for iOS and OSX these days).



Apple's hijacking of links, addresses, etc, is possibly their top abuse of power.

The other possible top abuse is the way they block you in your group messages if you switch from iPhone to Android.


I'm not even sure their engineers understand how annoying it is. They've implemented links in such a horrible way, and it's gotten worse with time (for example, there is a feature where if you open a link and have the right associated app installed, it will open the link in the app. There used to be a way to force the link to open in Safari in case you didn't want to open the app; it'd show up in the top right. The feature is gone now and it's hidden in a very strange place that is unintuitive to find and difficult to perform–you need to long press on the link and open it from there, but this invariably happens after you've opened the link, it opens the app, and you go back to Safari to now open it there.)


this sounds like a privacy issue and should be filed as a bug. if I can't open a link in a private tab in Safari (or ideally the browser of my choice) then I can not protect my privacy. The launched app will get to record my activity or via the non private browser tab the site will track me.

file a bug / feedback that this is not in line with Apple's privacy first stance


If you're in private mode, it asks before opening in the app.

As ever, check first, then complain.


Apple News has a private mode?


It is more private for Apple to handle the universal link and deep link you into the installed app since arguably the navigation can happen on device. The moment you bring a browser into the picture you are dealing with network based navigation (unless service workers are used which is a pretty small chance these days)


This is so annoying. I hate being bounced around like this.

There used to be an issue with amazon with this where you’d try to buy an ebook and be bounced into the app, but you can’t buy ebooks in the app because amazon don’t want to pay Apple 30% of the cost. I just had to delete the amazon app to buy the book. Luckily their website works just as well.


this was literally an example that was given of poor user experience during a UX class I took.


Haha! That’s funny.

What were the other examples?


I've noticed this starting to happen also. Click a YouTube video and it wants to open in the YouTube app which gives me only two options: Update or Quit. Or opens Instagram which then forgets the profile/image I was actually trying to view.


And when the link is opened in an app instead of Safari, it doesn't gain the visited styling. Which is annoying.


MacOS doesn't even hijack what you want it to hijack. I have to set every .sh I make to open in text edit manually, and I still sometimes get prompts to search the app store for an app to deal with these spooky .sh files even with textedit listed as default on the right click menu.


Note that macOS has two different kinds of default application associations.

The first one, the one that you might expect to apply to all files of the same kind, but which actually applies only to the specific file you are doing this for, is under “Open With” in the context menu that comes up when you right click the file (two finger touch by default on MacBook laptops). When you choose Open With > Other and check the “Always Open With” checkbox, you are only creating an association for the file in question, not for the file format in general.

This to me is confusing.

In order to create the association for the file type and not just a specific file, you need to instead select the “Get Info” entry in the context menu for the file. Then, under “Open with” in the window that comes up, this is where you select the application that will apply to all files of same kind.

Did you try the latter method?


As someone who grew up on Windows when I initially started working on a Mac daily this drove me absolutely nuts. It could be worded much better.

The way Finder sets the default view is equally unintuitive


Being able to associate a particular file with application instead of all files of the given type might be handy feature.


However useful, I have a feeling that is more likely to be the exception rather than the rule and should therefore be prioritized accordingly


I don't see how Apple could've made it any easier.

1) Select any file.

2) Change the app in the "Open with" dropdown.

3) If you want it to apply to all files click the "Change all" button.


The fact that the upstream HN comment has to explain two identical-sounding options that do different things should help you see what's wrong with the current impl. Your steps don't work with the "Open With -> Options" context menu like they point out, but rather only with the "Get Info -> Open With" options. Not the best UX.

For example, I can imagine if there were instead two radio buttons in "Open With": "Always for this file", "Always for this extension". All in one place.


Doesn't work when Xcode is the default app. I use macdown for mathjax files for math.stackexchange.com, and I have to use "open with" to choose macdown every time.


In old days Mac OS files had two properties: file type and creator type. File type could be like "TEXT" and creator type was a unique code for the application that created it (they were registered at Apple, I believe). All this was purely internal, users never saw such things: Mac file names normally didn't have an "extension", it was just "1995 Report" or something.

As a result it behaved like that:

- When you opened a file, it opened in the program that created it.

- When there were no such program, you could still open it in another program that claimed to understand these files. I don't remember how it was implemented, I think there was a dialog asking if one would like to use another program with some choice (probably the first one that fit).

This was rather handy with formats like "Encapsulated Postscript" in desktop publishing: this format supported both vector and raster images, but one normally used different applications to manipulate them.

This stayed for some time after the move to Mac OS X, but now I believe these things are gone or not used at all.


The concept of file extensions on windows is equally unintuitive (why is the type 9f.file dictated by what comes after a dot). It's just a question of what you're used to.


File extensions are the de facto type indicator on all platforms, not just Windows. Even when the FS has some other way to specify the type (e.g. a separate MIME type metadata field), the extension still normally sets the default value for that.

This is orthogonal to all that, though. It's about the UX to associate an app with a file type, regardless of how that file type is determined.


doesn't Linux use libmagic?


What you're referring to as Linux is actually...

GNU/Linux doesn't automatically choose which program to use for anything (you can't ./file.png like you can in Windows). In my experience file managers tend to use file extensions to choose which application to use, and that application might then use libmagic and ignore the file extension. (e.g. giving a PNG file the .JPG extension will make the file manager think it's a JPEG, and therefore open it with an image viewer, but the image viewer program will use headers to recognise it as a PNG)


xdg-open ./file.png


I love how, once you install Xcode, it becomes the default editor for a load of plain text formats.

Yes Apple, I really do need to boot up a full blown, 7GB+ sized IDE to edit some markdown. Apparently TextEdit wasn't good enough.


Get plan9port for OSX, forget XCode, Vi, Emacs.

Set it up accordingly, you won't go back.

Acme under OSX shines.


Speaking to my heart. I had Acme set up but it needs a good mouse to make it work. I use a trackball mouse, it doesn't have the three finger chords.

Fucking love the concept, but it'd take a lot of work to get the immersiveness of modern systems. e.g. completion/suggestions, linting, etc. none of it is built for plan9.

Ironic because plan9 is amazingly trackball friendly.


Also, if you code in Go:

https://github.com/jmigpin/editor

It diverges somehow from Acme, but it has autocomplete and a similar interface. I love it :)


acme2k has keybindings too, you can use these instead of chords

https://github.com/karahobny/acme2k


If you aren't outraged that emacs or vi aren't the default, are you sure you're a typical HN reader?!


The outrage is that you can't change from Xcode. I use macdown for mathjax files for math.stackexchange.com, and I have to use "open with" to choose macdown every time.


You can change the app associated with a file type from the "info" dialog for any file of that type.

Yeah, I know. If you want good UX, best to switch to living in the 1990s.


I’ve used the `duti` CLI for a while to set defaults per file type; never had any issues since.

https://github.com/moretension/duti

(or `brew install duti`)


I'm not convinced it's an abuse of power; it's a feature any developer can take advantage of. Your apps get their own protocol, so you can deep-link into one using a URI. But you can also register them to open certain contents natively.

I'm not sure how it works, maybe there's some metadata in the HTML. You can see the same thing in action with the Jira app on Cataline now - any Jira link you click will load up and render in the native app.

That said, it's definitely a problem when you're redirecting these links to things you don't actually support any more, without any way to opt out.


In Android, an App's manifest designates which deep links it can handle. Then when the user clicks on a link, it gives the user the option of which app to use when there are multiple apps that can handle it.

Maybe since at one point you did tell it you want to use news to handle it, it keeps going back to it? Although that means most likely the News app was not updated to remove support for that link. Or maybe iOS deep links work differently? (I only use Android)


AFAIU on iOS there are two types of deep linking. 1) Universal Links, which allow owners of domains to launch an app instead of Safari. For example, you might own the domain myawesomeapp.com, and therefore can redirect urls to e.g. myawesomeapp.com/do_things to launch your app. 2) Protocol links, these are completely locked down by iOS and there is no way to subvert them. For example, mailto links always open the mail app.


You can also register your own protocol IIRC, eg “myawesomeapp://do_things”


And they’re first come first serve hence the shift to universal links which have terrible UX. There’s really not a good secure solution on iOS.


issue with ios is that there is never any control over who handles what links. Apps can register custom protocols, but for common protocols that have an apple default (https, http, mailto being the main ones) you are stuck with what they decide. No option to even install an alternate such as Chrome or Gmail, and be prompted. And similarly, even though it's not a protocol, but more like a filetype, Apple News hijacks feed URLs and there's nothing anyone but Apple can do to change that.


In what situation do you not get a prompt?

You can install an alternative like chrome or google search (chrome but better UX IMO) And when you do, anything that opens a page that isn't an embedded webkitview prompts me to pick a browser. It even suggests chrome which I don't have installed (I guess I installed it once and it remembers the protocol registration)


Ios doesn't support changing default apps. If you get a prompt, it's because that app has independently implemented browser choice. This is also why you can select browsers that aren't installed, because there's no way of checking whether anything's installed.

Were you to use the default mail application, for example, its links would always open in Safari.


It's reasonable when it's your own custom protocol, but it's a very different story for an open one that has multiple clients.


It's just a project manager that's not worth half the salary.


Can you expand please on the blocking group messages?


If you are in an iMessage group chat and you switch to Android, you need to create a new group chat to continue talking to your friends.


This function even harms iOS only groupchats. I walk to an area of low reception and try and message the group chat, it defaults as an sms due to the poor signal and breaks the group in the same way.

Not sure what advantages an imessage vs sms groupchat even give me in this era of unlimited texting. Pretty hearts?


> Not sure what advantages an imessage vs sms groupchat even give me in this era of unlimited texting. Pretty hearts?

Some cellular carriers still charge per MMS message, so group chats (which use MMS) can get expensive. MMS group messages also have some undesirable properties -- in particular, adding or removing users from a group is unreliable, because each device is responsible for generating a list of recipients itself.

Plus, iMessage uses end-to-end encryption. MMS does not.


Off the top of my head:

* more than 10 participants * can set a topic for the group * can add and remove participants * end to end encryption * typing indicators (i think? Can’t remember if these work in groups)


Falling back to SMS is an option in Settings. I personally have it disabled - when disabled, it spends longer trying to resend the iMessage rather than sending an SMS rather quickly.


Well iMessage works over wifi so if you don't have cell service it is handy. I just got home from visiting family and their local airport has no cell service.


Um… yes? iMessage is a feature of iOS and macOS. It isn't available on Android devices, and its group chats don't exist outside those platforms. But I don't see how this constitutes Apple "blocking" anything.


It's not a position you're put into with WhatsApp or any other app.

It is bad for your messaging to be made by the same company as your phone. Some really problematic conflicts of interest.


> It's not a position you're put into with WhatsApp or any other app.

Sure it is! You can't continue a group conversation from WhatsApp -- or any other messenger, really -- on another messenger service without manually recreating the group. There is literally nothing which makes iMessage unique in this regard.


> There is literally nothing which makes iMessage unique in this regard.

Sure there is. If you try to "text" someone (as in SMS) and the Messages app (which is the ONLY way you can send SMS on iOS) detects your number as registered to iMessage, it will send an iMessage by default.

So even though your number didn't change, and everyone is still using the "Messages" app to talk to you, it inexplicably doesn't work anymore for group chats, and your regular private message colors have mysteriously turned green.


What really sucks is that it means iPhone Signal isn't a transparent drop-in replacement for the sms app like it is on Android, meaning I can never get iphone-having contacts to use it.


> which is the ONLY way you can send SMS on iOS

There are plenty of SMS-API-provider-backed "texting apps" on iOS. There are also softphone apps that provide SMS service.

I think you specifically mean "the only way you can send SMS messages from the DID number that your carrier maps to your phone's MMC IMEI registration.


This is unnecessarily pedantic. It's rather obvious in context that "sending an SMS" means sending an SMS from your phone (you know, the thing SMS was invented for) rather than using a third-party web service to send an SMS on your behalf.


I appreciated the clarification.


You're proving the point that you have to use ludicrously non-obvious ways to make normal phone functionality work in the way you'd expect.


> There is literally nothing which makes iMessage unique in this regard.

Except for the vendor lock-in, which makes this a problem to begin with. Other services work on a majority of devices.


Then your complaint is about Apple locking iMessage to Apple devices.

Which is a legitimate complaint especially since Apple had said they would be opening it up (or was that FaceTime...I'm not sure).

But that's a wholly different complaint from the fact that Apple, like nearly every other messaging service, does not allow you to export groups to other services.


Apple was going to make the peer-to-peer video call technology they were using for FaceTime public. Then they got sued by VirnetX over a patent related to that technology, so they had to rework the service to run through a central server. With that change, there was no longer anything worth open-sourcing.


It's open and federated protocol, not open source, that everybody else wants from them.


It's not "wholly different"! It's distinct but deeply related.


Well WhatsApp is free and iMessage has a multiple hundred dollar price tag attached.

Apple consciously doesn't make the APIs for iMessage available.


By that logic WhatsApp isn't free. I have to spend hundreds of dollars upfront to buy a phone, and worse, hundreds of dollars each year to maintain a phone line to use WhatsApp.

WhatsApp doesn't provide an API so I could use it on my existing laptop over WiFi for free (the WhatsApp web requires it to be setup on a phone first).


>I have to spend hundreds of dollars upfront to buy a phone

But the phone doesn't have to be bought from Facebook, whereas with iMessage you have to pay Apple for a phone.

>maintain a phone line to use WhatsApp.

I wonder what the reason for this is. Maybe to reduce spam? Data collection?


But I get to choose who to pay - and most people already have a phone.

maintaining a phone line doesn't cost hundreds of dollars a year


> ...WhatsApp isn't free. I have to spend hundreds of dollars upfront to buy a phone...

WhatsApp works reliably on a staggeringly broad list of devices. You can get a supported phone for, like, $20 and stick a $5-per-month prepaid SIM in it (many of these plans in low-income countries specifically come with WhatsApp allowances) and be connected.


Yea that’s not free


WhatsApp is as effectively free as it can be within the segment of the population that needs or wants it.

This is like arguing that free Wi-Fi isn't "free" because some people only use ethernet. If you don't already own a compatible device, you aren't their customer anyway.


Then, following your logic, no software is free as in beer because you always need a computer to run it, and computer hardware isn't free...


Well yeah but it's not tied to the operating system of your phone manufacturer!


And WhatsApp and Facebook are just paragons of virtue.


iMessage isn't MMS. Android does group messages with the latter.


iMessage does MMS for group chat with non-iMessage clients.


Yes, but what the poster above describes as "locking you out of group messages" sounds like a member of an all-iMessage group switching to android, and the group message continuing on in iMessages-only, rather than being restarted as MMS to include the Android.


>The other possible top abuse is the way they block you in your group messages if you switch from iPhone to Android.

The solution is to deregister your phone number for iMessage; if you don't do this, it will happen automatically after a week or so.

https://selfsolve.apple.com/deregister-imessage/


This just drops you from your group messages.


> The other possible top abuse is the way they block you in your group messages if you switch from iPhone to Android.

Just dealt with this with a sibling who switched to android. How is this legal? It’s quite ridiculous.

I wish everyone in the US just used WhatsApp or another third party app like it seems they do in every other country. Instead, not having an iPhone makes you a pariah because of the green messages.


> How is this legal? It’s quite ridiculous.

Why would this be illegal?

Consider this scenario: you have an iMessage group chat of 3 people, and one of the three people has a plan like PayGo[1] and an extremely limited monthly SMS quota. What happens when one of the other two participants suddenly counts against that quota?

There are options, of course, but for consumers as a whole those options are hostile and inelegant - are you gonna pop up a warning saying that messaging these people might now cost you money?

I guess you could make an argument for turning iMessage off by default, but that also seems like a net negative for consumers as you're back to giving phone companies the opportunity to charge exorbitant rates for things like MMS. Then you'd just push everyone to yet another third-party messenger that could be acquired, aggressively monetized, or shut down at any time.

1. https://www.ultramobile.com/paygo/


I totally agree that this is weird play, and I don't like OS vendors doing it. I'll add that while I personally prefer Android to iOS, Google implements similar behavior; clicking on a YouTube link launches the app by default, without asking the user. It's super annoying -- a web browser should never launch another app without at least consulting the user, but really, it probably shouldn't happen at all without the user downloading an extension first.


It asks first time - do you want to open it and should it remember your choice. Later you can set default in android settings or remove the yt app default setting.

It's buried in there somewhere.


I had an old Galaxy S6 Active sitting around, so I just did a factory reset and didn't sign into any accounts. I opened Chrome and searched for "keyboard cat" using the URL bar. I tapped on the first result, and it opened the YouTube app without any user prompt from Chrome. This is on Android 6.0.1, and I'll give you that this could theoretically be a Samsung specific modification, but that doesn't seem like the simplest assumption. My best attempt at science (without wiping my main device) says you're wrong. That's how most apps work, but they make a special exception for YouTube cuz they own it.

Edit: I'll add that this would be particularly annoying if I were actually trying to watch a video because the YouTube app is so outdated that it prompts you to download an update with no option to just watch the video, and pressing the update button brings you to the Play Store app... which requires a Google sign in. So what should have been a simple link to a video instead funnels the user through two apps where they are asked to sign in with a Google account (or create one if they haven't) and download an update... all without even offering to open the link in their browser. That's pretty embarrassing UX.


It's likely that it already had that default association set up out of the box. If you open up the system App Info screen for YouTube, you should see a section that says "Set as default", and when you open that, it shows you which URLs it hijacks under "Supported web addresses", but in that same screen there should be a "Go to supported URLs" option, where you can choose "In this app", "Ask every time", or "In other app".

I am running Android 10 so it's possible it looks different on Android 6.


My original claim (which DocG disputed) was that clicking on a YouTube link launches the app by default, without asking the user. "By default" implies that this can be changed.


Yup, and it's also something that all apps can request, and the user is always asked for their preference until they say 'don't ask again'.


There really needs to be an always ask next to don’t ask again.


Why? Unless you check "don't ask again" it will always ask...


Because a single accidental click causes a permanent change.

It’s fine to have a settings page that lets you manage pop ups, but a pop up should always be extremely limited in scope.


Its not a permanent change? You just go into the apps settings and remove the intent.


The vast majority of users are not going to be aware of how to fix the behavior.

At the extreme, ‘connect to this wifi network’ and ‘reset to factory settings’ are obviously at different scales of importance and should have significantly different UI. Similarly open this app, and changing a setting are on different scales. Basically, it’s fine if the pop up takes you to some other UI element to make the change, but pop ups should have consistent importance.


There is in the newest version of android!


It really wouldn't let me open a Google Photos shared album in Firefox Android[0], always going to the Photos app. I am certain it never asked me before.

[0] which I needed to share the link to my laptop, as Google Photos only gives you a "copy link" option for a shared album, not actually sharing it. I am SO fed up with this shit, programs fighting to keep me "in the ecosystem" while sacrificing UX and just blocking you from completing a task.


I’ll add the Photos on Yelp embedded in Apple Maps locations with accidental taps launching the Yelp native app or falling back to the App Store to download it.


At least Google Assistant allows me to navigate with a non-Google Maps app


Siri does too now, but you can’t set a non-Apple default. Have to specify “give me directions using google maps” each time.

https://ww.9to5mac.com/2019/09/19/google-maps-waze-siri/


On the other hand Google assistant seemingly can’t even text through google voice.


Impeach Apple /s


For the link hijacking, it's worth noting that Apple News only exists/is pre-installed in a handful of markets and is uninstallable. But yeah, baffling.


I have it uninstalled, but every time somebody sends me a link they read in Apple News, my phone prompts me to install the app and won’t show me the article unless I do.


That would be because they sent you a deep link into the app, not a regular link to a webpage. The same thing would happen if someone sent you e.g. a link to an item on the iTunes Store, or to a Spotify playlist.


Sending the deep link is the default behavior when you hit the convenient "Share" button. The only way to share the regular web page link is incredibly cumbersome:

(1) Copy the Apple News deep link to your clipboard

(2) Paste it into a browser that will actually show you the final destination of the app link. This step is impossible to do in Safari on iOS (it will force you to use Apple News, and if that's not installed, it will force you to go to the App Store). So you end up pasting the link into say, iOS Chrome. This still prompts you to go to the App Store for Apple News, but it allows you to cancel this and just load the web page.

(3) After the link has loaded in your alternate iOS web browser, now you can copy the real article link and share it.

The above is way, way, way too cumbersome for the vast majority of iOS users to ever want to do, let alone think about. So, in a practical sense, sharing true article links surfaced via apple news is cumbersome enough to be virtually impossible for most users.


This is an example of a url from the app:

https://apple.news/A4my1m78WSvGiuorZbkAUiQ

I thought deep links used something beside http to specify which app to open.

Regardless, I can’t open that link.


Opening it in Chrome (or with curl...) I got a (HTML) redirect to https://www.washingtonpost.com/weather/2019/12/27/coast-to-c...


Thx, but doesn't that indicate that it's not a deep link, but a simple redirect that Apple refuses to give to me when I use their default browser—instead giving me something else?

And it's worth noting that simply clicking that link gives me the following alert:

>Restore "News"? > >You followed a link that requires the app "News", which is no longer on your iPhone. You can restore it from the App Store.

The two choices I'm given are "Show in App Store" or "Cancel"

Apple clearly tells me that it is impossible for me to view this webpage unless I install their News app. This is clearly false, technically, and I knew it. But I literally hadn't figured out how to view it until somebody mentioned trying copying and pasting the url into another browser.


Yea, I love the fact that my macOS update is only to update Apple News which is unavailable in my region.


Steve Jobs used to use the terms "brain dead" and "bozos" for software devs who did this. Perhaps it's time to bring these terms back just for Apple


Steve Jobs was great at many things, and I definitely preferred Apple when he was at the helm. But I do not think we should seek to emulate this aspect of his management style.

What does calling names accomplish? If the software sucks, criticize the software. Life is hard enough when other people aren't degrading you.


> What does calling names accomplish?

Shaming may not be a nice way to manage a company, but I don't think we should pretend it lacks for efficacy just because we don't like it. Pretending it doesn't work will never change the minds of people who already know from experience that it does work. If you want to change their minds you should first acknowledge that it works, then explain why it working isn't sufficient moral or ethical justification for doing it.


What if you want to use both Apple News and RSS feeds on one phone? I know it sounds crazy, I'm asking for a friend.


Safari on iOS 13 also got rid of the option to copy links of unsupported schemes, e.g. magnet. Now however you click you always get a link not supported message. Very frustrating.

“Desktop class web browsing on the iPad”, except we’re getting rid of link copying. Ridiculous.


What’s even worse if you click on a podcast link, it will take you to News and then it takes you to podcasts.


I don't see how that's worse than breaking an entire media format, but it does sound weird.


Man, I saw this headline and thought "thank god, they'll finally stop hijacking RSS links" :(


Y'know, that makes me wonder... what if the "removal" of RSS support is just a bug?


It is not.


How do you know? I'm interested!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: