Comment by jacooper

4 years ago

Why on earth is this even allowed in IOS in the first place ? Why do apps have the ability to control and change the browser? Instead of using the default one? Like android.

These same tools are what allow you to build and ship fully JS based apps on iOS instead of having to use Swift or Objective-C or anything like that. Arbitrary web views can be an entire app. Or they can reinvent the wheel and become in-app browsers. A lot of apps are fully or partially web based. Even Apple’s own apps use web views in crazy ways. For example, the entire Mac App Store used to be a web view. Parts of macOS system preferences are web views. It’s just that because they’re web views, if you slap browser-like chrome on them and send them to the internet, they also work as web browsers.

  • All of that is totally fine and not what people are upset about. If your entire app is just a web browser that renders your website, that should be fine too.

    The problem is when they render external websites and unsuspecting users think they are using the phone's web browser. That is something Apple/Google can have rules about without banning/restricting web views.

It's the in-app browser. The one that opens within the app, so that people don't need to switch to another app, and usually used for short-lived sessions. It doesn't modify or spy on the actual separate browser (Safari etc), just on whatever happens inside the app (as you would expect, app knows what's going on within itself), and it just so happens that sometimes in the app there is a browser page being displayed, which then goes to reason can also be spied on.

Android has these in-app browsers too, they may or may not be subject to this.

  • AFAIK Android in app browsers are just a different look for the default browser, I think its called WebView.

I assure you Android is capable of the exact same thing.

A lot of apps use webviews to render HTML, often in ways where you wouldn't even notice it's web content. Apps shouldn't use webviews to render external web sites but nothing in the APIs restrict them from doing so (recent versions of iOS have made it seem like they're heading in that direction but nothing concrete).

Easiest thing would be for Apple and Google to enforce this via denying app approvals. Would be a very interesting fight against apps this popular, though.

Android is in basically the same situation.

Obviously both Android & iOS let you open things in the default browser.

iOS has SFSafariViewController, which more-or-less corresponds to Chrome Custom Tabs on Android. These basically make a browser UI that is in the of the app for the purposes of multitasking/app-switching, but which is controlled by the browser. Devs can't inject code into these.

And both have WebViews, which let the dev do more-or-less whatever they want inside their own app.

  • I haven't seen any app to use webview for external links, it always use chrome custom tabs.