In-app browser not working on iOS

An in-app browser looks like Safari and is not Safari. Most of the confusion comes from the handful of things it deliberately will not do.

6 August 2026 by PAD team

What it is

Apps that open links internally use WKWebView, the same rendering engine as Safari, wrapped in their own interface. Pages render identically. The differences are in permissions and in what the container is allowed to hand off to the rest of the system.

The list of what breaks

What failsWhy
App Store linksApple redirects to itms-appss://, a scheme the WebView cannot hand off
Existing loginsseparate cookie jar from Safari, so sessions do not carry over
Apple Pay and 3-D Secureneed a native sheet or a new window the container will not open
File downloadsno download manager in most containers
window.open in new tabsusually ignored or opened in place
Camera and microphonepermission prompts often suppressed

The store link case in detail

This is the one that costs money, so it is worth understanding rather than working around blindly. When anything on iOS requests a store URL, Apple answers with a redirect:

GET https://apps.apple.com/us/app/example/id123456789
→ 302 Found
  Location: itms-appss://apps.apple.com/us/app/example/id123456789

Safari closes the page and opens the App Store. A WebView has no handler for that scheme and cannot pass it to another app, so navigation stops silently.

Neither Apple nor the app vendors consider this broken. Apple redirects to a custom scheme so the native store opens rather than a web page, and the apps keep visitors inside their browser to measure them.

Working around it

For store links, escape the WebView before Apple's redirect fires, using instagram://extbrowser where available and the store scheme directly elsewhere, with a visible button as the last resort. The full sequence with code is in the main write-up.

For logins and payments, the same principle applies earlier in the flow: get the visitor into the real browser before the sensitive step rather than discovering halfway through that the container will not cooperate.

For the store link case specifically, our link does the detection and the escape, and reports which taps made it out.

Create a link

Related