Handling URL Schemes

suggest change


  1. // canOpenURL method verifies if there is any app which can handle indicated URL scheme.
  2. // Swift

UIApplication.sharedApplication().canOpenURL(_ aUrl: NSURL)

  1. // Objective-C

[[UIApplication sharedApplication] canOpenURL:(NSURL *)aUrl];

  1. // openURL method tries to open a resource located by URL. YES/true if it was opened otherwise NO/false.
  2. // Swift

UIApplication.sharedApplication().openURL(_ aUrl: NSURL)

  1. // Objective-C

[[UIApplication sharedApplication] openURL:(NSURL *)aUrl];


Parameter | Meaning |

—— | —— | aUrl | a NSURL instance which stores a built-in or custom scheme string|


In iOS9 and above your app must list any URL schemes it will want to query. This is done by adding LSApplicationQueriesSchemes to Info.plist

iOS has built-in support for the tel, http/https ,sms, mailto, facetime schemes. It also supports http–based URLs for Youtube, Maps and iTunes apps.

Examples of built-in URL schemes:

tel: tel://123456890 or tel:123456890

http: http://www.google.com

facetime: facetime://azimov@demo.com

mailto: mailto://azimov@demo.com

sms: sms://123456890 or sms:123456890

Youtube: https://www.youtube.com/watch?v=-eCaif2QKfA


iTunes: https://itunes.apple.com/us/artist/randy-newman/id200900

Note: Not all special characters are supported in tel scheme (for example \* or \#). This is done because of security concerns to prevent users from unauthorized redirect of calls, so in this case Phone app won’t be opened.

Feedback about page:

Optional: your email if you want me to get back to you:

Table Of Contents