A good rule: pages on your own domain (and your login and payment domains) load inside the app; everything else opens outside — social links in their apps, maps in Google Maps, other websites in the browser. Non-web links such as tel:, mailto:, sms:, whatsapp: and intent:// must always be handed to Android, never loaded in the WebView.
Three kinds of links
| Link | Where it should open | Example |
|---|---|---|
| Your site | Inside the app | https://example.com/cart |
| Partner domains you rely on | Inside the app | Your payment page, help desk, login provider |
| Other websites | Browser or their app | YouTube, Instagram, news links |
| App schemes | The app that owns them | tel:, mailto:, whatsapp://, geo: |
intent:// links | Parsed by Android | Store buttons, “open in app” links |
Why “keep everything inside” is a mistake
- Social sites in a WebView ask users to log in again and often block it.
- Users lose their way: back button behaviour gets confusing several sites deep.
- Google Play's policy frowns on apps that act as browsers for other people's content.
Why “send everything outside” is also a mistake
Checkout and login often hop to another domain — checkout.stripe.com, accounts.example-auth.com, PayPal. If those open in the browser, the user finishes there and the app never learns the order or session happened. Add these domains to the in-app list, then test the full flow.
WhatsApp, phone and email buttons
Links like https://wa.me/15551234567 are web links that WhatsApp claims; the app should hand them to Android so WhatsApp opens. tel: and mailto: must never be loaded as pages — a WebView shows “ERR_UNKNOWN_URL_SCHEME” if the app doesn't intercept them.
target="_blank" and pop-ups
Links with target="_blank" and window.open() ask the WebView for a new window. If the app doesn't support multiple windows they may do nothing at all. Decide per case: payment and OAuth pop-ups should open in a new in-app window; other new-window links can go to the browser.
Test it before you build
Paste your start URL and a list of links from your site into the link scope tester. It labels each one inside, outside or system, and flags the domains you probably forgot.
FAQ
Why do I get ERR_UNKNOWN_URL_SCHEME?
The WebView tried to load a non-web link such as tel:, intent: or whatsapp:. The app must hand those to Android instead.
Can YouTube videos play inside the app?
Embedded YouTube players on your own pages play inside. Links to youtube.com should open the YouTube app.
How do I make a link always open in the browser?
Point it at a domain that isn't in the app's scope, or let the app open any target="_blank" link externally if your converter supports that rule.