What is URI Schemes?
URI schemes (also called custom URL schemes or custom protocols) are the original deep linking mechanism for mobile apps. They use a custom protocol prefix — like `myapp://` or `twitter://` — instead of the standard `https://` to route users to specific content within an app.
For example, `myapp://product/123` tells the operating system to open "myapp" and navigate to product 123. URI schemes have been available since the earliest versions of iOS and Android, making them the most widely supported — but also the most limited — form of deep linking.
How it works
URI schemes work by registering a custom protocol handler with the operating system:
On iOS — You declare your custom scheme in the app's Info.plist under CFBundleURLSchemes. When any URL with that scheme is triggered, iOS launches your app and passes the full URL to your app delegate.
On Android — You add an intent filter in AndroidManifest.xml that matches your custom scheme. Android routes matching URLs to your activity, where you extract the path and parameters.
No verification — Unlike Universal Links and App Links, URI schemes require no server-side verification file. Any app can register any scheme, which is both a benefit (simple setup) and a drawback (no security guarantees).
Why it matters
While URI schemes are being replaced by Universal Links and App Links for most use cases, they still serve important purposes:
- Simplest to implement — No server-side configuration needed - Broadest compatibility — Works on all iOS and Android versions - App-to-app communication — Useful for launching other apps with specific parameters
However, URI schemes have significant limitations: - No fallback — If the app isn't installed, the link fails silently or shows an error - No uniqueness — Multiple apps can register the same scheme, causing conflicts - No security — No domain verification means any app could intercept your links - Blocked in some contexts — Many email clients and social apps strip custom URI schemes
Frequently asked questions
Should I use URI schemes or Universal Links?
For user-facing deep links, always prefer Universal Links (iOS) and App Links (Android). They provide security, graceful fallback to web, and no disambiguation dialogs. Reserve URI schemes for app-to-app communication or backwards compatibility with very old OS versions.
Can two apps register the same URI scheme?
Yes, and this is a major limitation of URI schemes. If multiple apps register the same scheme, the behavior is undefined — the OS may open any of them. This is why Universal Links and App Links, which use domain verification, are more secure.
Related terms
Deep Linking
A technique that uses URIs to link directly to a specific screen or piece of content within a mobile app, rather than simply launching the app's home screen.
Universal Links
An iOS feature that allows HTTPS URLs to open directly in a native app instead of Safari, verified through an Apple App Site Association (AASA) file.
Android App Links
Android's verified deep linking mechanism that uses Digital Asset Links to associate HTTPS URLs with an app, allowing links to open directly in the app without a disambiguation dialog.
Apple App Site Association (AASA)
A JSON configuration file hosted on a web domain that tells iOS which URL paths should open in a native app, enabling Universal Links.