Search code examples
ioshttp-redirectapp-store

Redirect to application if installed, otherwise to App Store


I know it's possible to link directly to an app in iOS by registering a custom scheme (e.g. so://) and it's also possible to link to the app in the appstore via itunes.

In many cases, the ideal flow is to provide a link that redirects to the app if it's installed and to the store if not. Is this possible, and if so, how?

Added for clarity, the scenario is I'm opening a link (http) from an e-mail on my iphone that's inviting me to join a group in an application. If the user has the app installed on that device it should open, otherwise the http link should redirect to itunes.


Solution

  • There is no way to check for this. However, there is a nice workaround.

    The idea is basically this:

    1. The first time you open your app, you open up mobile safari from within your app to a predefined URL on your server
    2. On that URL you set up a cookie, like appInstalled to the users mobile safari
    3. You then kick the user back to your app with your registered scheme (same as FB does with SSO)
    4. All your email links point to your website, but on the website you check if the browser is mobile Safari and if the appInstalled cookie exists
    5. If either the browser is not mobile Safari or the cookie is not found, you redirect to the AppStore, or stay in your webpage.
    6. If the conditions of #4 are true, you redirect the user to your app with the registered scheme
    7. If the app has been deleted by the user, so the custom url scheme fails, you have a fail-safe redirect to the appstore

    The 2 last steps are explained on this SO post