How to open URL schemes from Safari in iOS9?

19,899

Solution 1

IOS 9 URL Shchemes Update : iOS 9 introduces LSApplicationQueriesSchemes to allow apps to query if other apps are installed.

1- If a url scheme is declared and calling canOpenURL(scheme)

YES if a installed app supports that URL scheme

NO if no app supporting that url

syslog will show canOpenURL: failed for URL: "urlScheme://" - error: null

2- If a url scheme is not declared and calling canOpenURL(scheme)

always return NO

syslog will show canOpenURL: failed for URL: "urlScheme://" - error: null

In iOS 9, the developer must add these info.plist LSApplicationQueriesSchemes

<array>
    <string>urlscheme</string>
    <string>urlscheme2</string>
    <string>urlscheme3</string>
    <string>urlscheme4</string>
</array>

50 max. unqiue URL scheme can be declared!

Solution 2

With the general release of ios9 setting window.location to a custom url does launch the app, but only after the user hits open in a popup. I filed a bug with apple about this, and they responded saying that it was intended behavior for launching an app from safari. They said they would look into the issue where if you hit cancel it fails out on future attempts.

Solution 3

With iOS9, Apple is changing a few things concerning URL schemes. Here is an article about those changes.

Basically, you now have to register all URL schemes that are supported by your app in your .plist file.

Share:
19,899
kevin
Author by

kevin

Updated on June 22, 2022

Comments

  • kevin
    kevin almost 2 years

    I was able to open apps from safari this way:

    window.location = 'myapp://do/xx';
    

    or open facebook app:

    window.location = 'fb://';
    

    But this stopped working in iOS9.

    How can I open apps using URL schemes in safari?