Possible to handle your own http URL schemes in iOS?

IosUrl Scheme

Ios Problem Overview


iTunes, App Store and YouTube on iOS clearly register http://... URL schemes to open their apps.

Can anyone do that, not just your own protocol?

The reason I want to do this is that I am working on an app for a festival. I want to "intercept" links to specific pages on the website and launch the app instead, if installed.

So far I have no had much luck

Ios Solutions


Solution 1 - Ios

The way you can do this for "http://" URLs (and what I think Apple and Spotify do) this is to:

  1. Register a custom URL scheme like the other answers have shown.

  2. Set up your HTTP URL to point to a real webpage.

  3. Put a script on that page to redirect to your custom URL if is on iOS.

For example, here is a sample page which will take you to the Twitter app for a particular user or the Twitter website depending upon if you are on the web or on your iOS device:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Twitter</title>
</head>
<body>
    <script type="text/javascript">
        var username = document.location.search.substr(1);
        document.location.replace(
            "standalone" in window.navigator ?
            'twitter:@'+username :              // iOS
            'http://twitter.com/'+username);    // others
    </script>
</body>
</html>

Try it out here: http://bl.ocks.org/d/3153819/?mckamey

Solution 2 - Ios

iOS 9 supports Universal Links, which allows iOS to launch an app based on a standard http:// URL (based on the hostname) without the user having to go through Safari.

It requires some web server configuration (you need a website), but once setup, the registered app will open the link instead of Safari.

For the users that don't have iOS 9, you can use Smart Banners to ease the experience.

Solution 3 - Ios

Unfortunately I don't think you can do that. You can register your own custom scheme e.g yourFestival:// and pass data from the outside world (SMS , email , other apps) to your app.

I wrote a blog post about this here : Using custom schemes and passing data between iOS apps.

I hope this helps.

Solution 4 - Ios

No, you can only register custom schemes.

And I cannot see Apple doing this, either...

Solution 5 - Ios

The question is old, but since I came across to this page now, years later, when searching for answer to the same question, I'll add answer on how to do it now:

Use Universal links. First enable "Associated Domains" or you App ID in developer.apple.com. Then add your domain as applink in Xcode (select Target->Signing & Capabilities->Associated Domains) and then create an apple-app-site-association file on your website.

Details are explained here.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionbaswellView Question on Stackoverflow
Solution 1 - IosmckameyView Answer on Stackoverflow
Solution 2 - IosMarcus AdamsView Answer on Stackoverflow
Solution 3 - IosMarius CiocanelView Answer on Stackoverflow
Solution 4 - IosEikoView Answer on Stackoverflow
Solution 5 - IosdiiduView Answer on Stackoverflow