This page centralizes code samples for URL schemes available in many iPhone applications, not only in Apple's but in many others. It also includes programming tips and references about implementing apps registering or consuming URL schemes.
If you own an iPhone app, contact akosma software to add the schemes you've implemented in your application, for others to use. The important thing is to showcase code samples, ready for others to use.
Contents[hide]
|
This wiki page is a courtesy service. Due to the large amounts of spam and advertising in this page, I've decided to block this page for editing. If you want your application to appear here, please contact akosma software with the information you want to post here.
Thanks for sharing your URL scheme to the community! Sorry for the hassle but thanks to users without respect I have no other choice.
Please check this page in iPhone Developer Tips.
There can be some problems with NSString's stringByAddingPercentEscapesUsingEncoding: method since it does not encode some reserved characters for URLs; you might prefer to use this code instead:
CFStringRef encoded = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)textToEncode, NULL, (CFStringRef)@";/?:@&=+$,", kCFStringEncodingUTF8);
The Core Foundation CFURLCreateStringByAddingPercentEscapes() function provides more options and is more suitable for complex texts.
Similarly, if you want to remove the URL encoding from a string, for example in the application:handleOpenURL: UIApplicationDelegate method, use this code:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { NSString *query = [url query]; CFStringRef clean = CFURLCreateStringByReplacingPercentEscapes(kCFAllocatorDefault, (CFStringRef)query, CFSTR("")); [controller doSomething:(NSString *)clean]; CFRelease(clean); }
Any URL starting with http:// which does not point to maps.google.com or www.youtube.com is sent to Safari:
NSString *stringURL = @"http://wiki.akosma.com/"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Apparently feed:// opens http://reader.mac.com in Safari.
URLs starting with http://maps.google.com open up the "Maps" application automatically:
NSString *title = @"title"; float latitude = 35.4634; float longitude = 9.43425; int zoom = 13; NSString *stringURL = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@@%1.6f,%1.6f&z=%d", title, latitude, longitude, zoom]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
It seems that maps:// also opens up the Maps application.
The phone links start with "tel:" but must not contain spaces or brackets (it can contain dashes and "+" signs, though):
NSMutableString *phone = [[@"+ 12 34 567 89 01" mutableCopy] autorelease]; [phone replaceOccurrencesOfString:@" " withString:@"" options:NSLiteralSearch range:NSMakeRange(0, [phone length])]; [phone replaceOccurrencesOfString:@"(" withString:@"" options:NSLiteralSearch range:NSMakeRange(0, [phone length])]; [phone replaceOccurrencesOfString:@")" withString:@"" options:NSLiteralSearch range:NSMakeRange(0, [phone length])]; NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"tel:%@", phone]]; [[UIApplication sharedApplication] openURL:url];
To open the SMS application, just use the sms: protocol in your URL:
NSString *stringURL = @"sms:"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
You can specify a phone number, but apparently not a default text for your message:
NSString *stringURL = @"sms:+12345678901"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
The same restrictions apply as for phone URLs, regarding spaces, brackets and dashes.
These URLs launch Mail and open the compose message controller:
NSString *stringURL = @"mailto:[email protected]"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
You can also provide more information, for a customized subject and body texts:
NSString *subject = @"Message subject"; NSString *body = @"Message body"; NSString *address = @"[email protected]"; NSString *cc = @"[email protected]"; NSString *path = [NSString stringWithFormat:@"mailto:%@?cc=%@&subject=%@&body=%@", address, cc, subject, body]; NSURL *url = [NSURL URLWithString:[path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; [[UIApplication sharedApplication] openURL:url];
You might also omit some information:
NSString *subject = @"Message subject"; NSString *path = [NSString stringWithFormat:@"mailto:?subject=%@", subject]; NSURL *url = [NSURL URLWithString:[path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; [[UIApplication sharedApplication] openURL:url];
For more complex body texts, you might want to use the CFURLCreateStringByAddingPercentEscapes() function, as explained above in this page.
The "music:" URL scheme opens the iPod application:
NSString *stringURL = @"music:"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Thanks to Eric Dolecki for the information!
URLs starting with http://www.youtube.com open up the "YouTube" application automatically:
NSString *stringURL = @"http://www.youtube.com/watch?v=WZH30T99MaM"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
It also works with this URL (which normally brings the Flash video player used by YouTube):
NSString *stringURL = @"http://www.youtube.com/v/WZH30T99MaM"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To open the Videos application, use the "videos:" URL:
NSString *stringURL = @"videos:"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To open up iTunes, use this URL:
NSString *stringURL = @"http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?i=156093464&id=156093462&s=143441"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Very similar to the iTunes URLs:
NSString *stringURL = @"http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=294409923&mt=8"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Source: http://akos.ma/aqdr with some help from StuFFmc to actually get the URL working :)
To open the library:
NSString *stringURL = @"ibooks://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To open the iBooks store at a particular book page, you have to add the complete URL to that particular book:
NSString *stringURL = @"itms-books://itunes.apple.com/de/book/marchen/id436945766"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
NSString *stringURL = @"itms-bookss://itunes.apple.com/de/book/marchen/id436945766"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Launch the application:
NSString *stringURL = @"airsharing://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Launch the application:
NSString *stringURL = @"alocola://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
For Ambiance by Urban Apps, referred by Matt:
Scheme: amb://
NSString *stringURL = @"amb://home"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Paths (each is self explanatory)
Launch the application:
NSString *stringURL = @"appigonotebook://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Launch the application:
NSString *stringURL = @"appigotodo://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Create a new task:
NSString *template = @"appigotodo://com.example.xyzapp/import?name=%@¬e=%@&due-date=%@&priority=%@&repeat=%@"; NSString *name = @"Buy%20some%20milk"; NSString *note = @"Stop%20on%20the%20way%20home%20from%20work."; NSString *dueDate = @"2009-07-16"; NSString *priority = @"1"; NSString *repeat = @"101"; NSString *stringURL = [NSString stringWithFormat:template, name, note, dueDate, priority, repeat]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
NSString *stringURL = @"Bookmarkers://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Open Bookmarkers Pro:
BookmarkersPro://{url}?jumpback={your url scheme}
Open Bookmarkers:
Bookmarkers://{url}?jumpback={your url scheme}
Call Recorder - IntCallWith the app you can record our outgoing phone calls.
https://itunes.apple.com/us/app/call-recorder-intcall/id521680097?mt=8
URL Scheme:
callrec://[phone number in international format without leading 0]
For example, to call a number in USA use the following scheme:callrec://12125867000
Cheap Calls - IntCall
With the app you can make cheap international callshttps://itunes.apple.com/us/app/cheap-calls-intcall/id502451894?mt=8
URL Scheme:cheapcalls://[phone number in international format without leading 0]
For example, to call a number in USA use the following scheme:cheapcalls://12125867000
Launch the application and pre-populate the update field with your desired Tweet/Facebook update. Optional: Provide Duo with the custom URL and return path to your app to provide the user with a button to return to your app.
NSString *appID = @"Your Apps Name"; NSString *updateInfo = @"The Tweet/Status Update"; NSString *returnScheme = @"Your Apps Return URL Scheme"; NSString *returnPath = @"Your/Apps/Return/Path"; NSString *baseURL = @"duoxx://updateFaceTwit?"; NSString *encodedUpdateInfo = [updateInfo stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; NSString *urlString = [NSString stringWithFormat:@"%@BLappID=%@;BLupdateInfo=%@;BLreturnScheme=%@;BLreturnPath=%@", baseURL, appID, encodedUpdateInfo, returnScheme, returnPath]; NSURL *url = [NSURL URLWithString:urlString]; [[UIApplication sharedApplication] openURL:url];
Launch app and add a placemark at given coordinate:
NSString *title = @"Placemark title (optional)"; NSString *summary = @"Placemark description (optional)"; CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(123.0, 12.0); title = [(id)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)title, NULL, (CFStringRef)@";/?:@&=+$,", kCFStringEncodingUTF8) autorelease]; summary = [(id)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)summary, NULL, (CFStringRef)@";/?:@&=+$,", kCFStringEncodingUTF8) autorelease]; NSString *cartographerURL = [NSString stringWithFormat:@"cartographer://placemark?coordinate=%lf,%lf&title=%@&summary=%@", coordinate.latitude, coordinate.longitude, title, summary]; NSURL *url = [NSURL URLWithString:cartographerURL]; [[UIApplication sharedApplication] openURL:url];
Launch app and load either a KML source or a Google My Map:
NSString *sourceURL = @"http://...."; // e.g. http://maps.google.com/maps/ms?ie=UTF8&hl=en&msa=0&msid=208320711678395936256.00046bbcfdcd1f3ebf64b&z=5 // Optional: MKCoordinateRegion region = ...; sourceURL = [sourceURL stringByAppendingFormat:@"&ll=%lf,%lf&spn=%lf,%lf", region.center.latitude, region.center.longitude, region.span.latitudeDelta, region.span.longitudeDelta]; NSURL *url = [NSURL URLWithString:[sourceURL stringByReplacingOccurrencesOfString:@"http://" withString:@"cartographer://"]]; [[UIApplication sharedApplication] openURL:url];
NSString *stringURL = @"irc://irc.example.domain/roomName"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
NSString *stringURL = @"irc://irc.example.domain/Nickname@roomName"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
NSString *stringURL = @"irc://irc.example.domain/Nickname!Realname@roomName"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To email device info:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"cobitools://[email protected]"]];
To email console logs:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"cobitools://[email protected]&filter=textFilter&appname=AppName"]];
Launch the application:
NSString *stringURL = @"com-innerfence-ccterminal://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To launch the application:
NSString *stringURL = @"dailymotion://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To open a video using its ID:
NSString *stringURL = [NSString stringWithFormat:@"dailymotion://video/%@", video_id]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To launch the application:
NSString *stringURL = @"exposure://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
(Source)
NSString *message = @"http://test.com/"; NSString *stringURL = [NSString stringWithFormat:@"twitterfon:///post?%@", message]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
NSString *message = @"http://test.com/"; NSString *stringURL = [NSString stringWithFormat:@"twitterfonpro:///post/username?%@", message]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
The "post" parameter in the URL only works for simple URLs; if you want to post URL-encoded text, try the following:
NSString *message = @"hello%20from%20TwitterFon!"; NSString *stringURL = [NSString stringWithFormat:@"twitterfonpro:///message?%@", message]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Substitute eureka for http e.g. eureka://en.wikipedia.org/wiki/Apple
NSString *page = @"en.wikipedia.org/wiki/Apple"; NSString *stringURL = [NSString stringWithFormat:@"eureka://%@", page]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
NSString *stringURL = @"explorimmo://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
This information comes from the iPhoneDevTools website.
NSURL *url = [NSURL URLWithString:@"fb://"]; [[UIApplication sharedApplication] openURL:url];
You can use these options:
This "works" but, then again, doesn't:
It only works if the Facebook app has previously loaded the particular post, otherwise it draws a blank.
Apparently there are even more options available (thanks to Alex Salom for the tip!):
Says Sam Cornwell:
As of the most recent facebook update 4.0 for iPhone and iPad,
URL scheme is gcbuddy:// so to launch the application:
NSString *stringURL = @"gcbuddy://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To add a cache to gcbuddy (simple example):
NSString *stringURL = @"gcbuddy://add/cache?id=GC12345&name=A%20test%20cache"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
See the full documentation for all optional parameters.
NSString *lat = @"12.345"; NSString *lon = @"6.789"; NSString *waypoint = @"GC12345"; NSString *stringURL = [NSString stringWithFormat:@"geopherlite://setTarget;lat=%@;lon=%@;waypoint=%@", lat, lon, waypoint]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Source: https://developers.google.com/chrome/mobile/docs/ios-links
To check if Chrome is installed, an app can simply check if either of these URI schemes is available:
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"googlechrome://"]];
This step is useful in case an app would like to change the UI depending on if Chrome is installed or not. For instance the app could add an option to open URLs in Chrome in a share menu or action sheet.
To actually open a URL in Chrome, the URI scheme provided in the URL must be changed from http or https to the Google Chrome equivalent. The following sample code opens a URL in Chrome:
NSURL *inputURL =; NSString *scheme = inputURL.scheme; // Replace the URL Scheme with the Chrome equivalent. NSString *chromeScheme = nil; if ([scheme isEqualToString:@"http"]) { chromeScheme = @"googlechrome"; } else if ([scheme isEqualToString:@"https"]) { chromeScheme = @"googlechromes"; } // Proceed only if a valid Google Chrome URI Scheme is available. if (chromeScheme) { NSString *absoluteString = [inputURL absoluteString]; NSRange rangeForScheme = [absoluteString rangeOfString:@":"]; NSString *urlNoScheme = [absoluteString substringFromIndex:rangeForScheme.location]; NSString *chromeURLString = [chromeScheme stringByAppendingString:urlNoScheme]; NSURL *chromeURL = [NSURL URLWithString:chromeURLString]; // Open the URL with Chrome. [[UIApplication sharedApplication] openURL:chromeURL]; }
If Chrome is installed, the above code converts the URI scheme found in the URL to the Google Chrome equivalent. When Google Chrome opens, the URL passed as a parameter will be opened in a new tab.
To launch the application:
NSString *stringURL = @"comgoogleearth://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Image Data is a universal app that displays the metadata stored inside an image.http://itunes.apple.com/us/app/image-metadata-viewer/id412509237?mt=8
Image Data can be opened by other application by using the ALAssets representation URL where assets-library is replaced by imagedata. For example:
imagedata://asset/asset.JPG?id=E9141C24-A5C9-47E2-A2AE-8580A21CD612&ext=JPG
ALAsset *asset = //reference to a ALAsset ALAssetRepresentation *representation = [asset defaultRepresentation]; NSURL *assetURL = [representation url]; NSString *assetURLAsString = [assetURL absoluteString]; NSURL *imageDataURL = [NSURL URLWithString:[assetURLAsString stringByReplacingOccurrencesOfString:@"assets-library" withString:@"imagedata"]]; [[UIApplication sharedApplication] openURL:imageDataURL];
The IMDb 2.0 app now has three URL schemes:
// with a search keyword: imdb:///find?q=godfather // with a title id: imdb:///title/tt0068646/ // with a name id: imdb:///name/nm0000199/
More URLs supported in version 2.1
imdb:///showtimes imdb:///title/tt0068646/cinemashowtimes imdb:///boxoffice imdb:///chart/moviemeter imdb:///chart/starmeter imdb:///chart/top imdb:///chart/bottom imdb:///chart/tv imdb:///feature/comingsoon imdb:///feature/bestpicture imdb:///feature/tvrecaps imdb:///feature/borntoday
Alternatively, the app recognizes version specific URL schemes of the form imdb-XXYY where XX is the app major version and YY is the app minor version. The 2.1 app was the first to support this scheme. This can also be used as a check from external apps to detect whether a required minimum version of the app is installed. For example, all IMDb app versions from 2.1 and higher will recognize the imdb-0201 scheme.
Launch the application (as of version 3.1):
NSString *stringURL = @"inrixtraffic://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To launch the application:
NSString *stringURL = @"itranslate://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To translate a text:
NSString *textToTranslate = @"Hello world"; // Text must be URL-encoded...! textToTranslate = [textToTranslate stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSString *test = [NSString stringWithFormat:@"itranslate://translate?from=en&to=de&text=%@",textToTranslate]; NSURL *url = [[NSURL alloc] initWithString:test]; [[UIApplication sharedApplication] openURL:url];
You can find a list of all supported language codes here: http://code.google.com/apis/language/translate/v2/using_rest.html#language-params
NSString *stringURL = @"junospulse:/// ?method={}&action={start|stop}"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To launch the application:
NSString *stringURL = @"loanplan://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Example of a URL to start navigation to an address:
navigon://-|-|CHE|8052|Z=C3=9CRICH|KATZENBACHSTRASSE|51|-|-|***|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
To launch the application:
NSString *stringURL = @"notitas://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To create a new note:
NSString *note = @"your%20note%20here"; // It must be URL-encoded...! NSString *stringURL = [NSString stringWithFormat:@"notitas:///new?%@", note]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To search for open seats at a restaurant:
NSString *restaurantID = @"168"; // Numeric OpenTable Restaurant ID NSString *partySize = @"3"; // Integer NSString *stringURL = [NSString stringWithFormat:@"reserve://opentable.com/%@?partySize=%@", restaurantID, partySize]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Following URL schemes are handled by Opera Mini 7.0 and later:
NSString *stringURL = @"ohttp://www.opera.com/"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
See the full documentation, code samples, and online demo.
Start the barcode scanner, read the barcode, then call back the given URL with the UPC/EAN digits.The callback URL can be another iPhone custom URL (p2sclient: in the example below) or a web site:
NSURL *url = [NSURL URLWithString:@"pic2shop://scan?callback=p2sclient%3A//EAN"]; [[UIApplication sharedApplication] openURL:url]
Lookup a product by UPC/EAN:
NSURL *url = [NSURL URLWithString:@"pic2shop://lookup?ean=9780321503619"]; [[UIApplication sharedApplication] openURL:url]
Source
URL Scheme: pinit12://pinterest.com/pin/create/bookmarklet/?
NSURL *url = [NSURL URLWithString:@"pinit12://pinterest.com/pin/create/bookmarklet/?"]; [[UIApplication sharedApplication] openURL:url]
Parameters:
The URL schemes initiates a search of the users media items or begins an online search for a book, movie, CD or game to add to the users library.
The schemes are compatible with the Mac version of the software so will work on both iOS and Mac.
The search scheme works by targeting the media type via the URL protocol and then add the search keywords (if left blank the search field is shown with text input ready for the user to type). Following are some examples of the four media protocols:
dvdpedia://search?Gladiator bookpedia://search?Tolkien cdpedia://search?Sting gamepedia://search?Zelda
The second URL option is to filter the current users collections to find a specific item already in the collection. The filter can be done via keyword or target one of the following 4 specific fields: title, director, artist or author via regular URL get encoding.
bookpedia://filterCollection?author=Orson%20Scott%20Card cdpedia://filterCollection?artist=Sting gamepedia://filterCollection?Nintendo
Launch a scan:
NSString *ip = @"192.168.1.1"; NSString *stringURL = [NSString stringWithFormat:@"portscan://%@", ip]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Run PureCalc
NSString *stringURL = @purecalc://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Access PureCalc Support Website
NSString *stringURL = @purecalc://help"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
View PureCalc Version Number
NSString *stringURL = @purecalc://version"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Generate Email to PureCalc Support Team
NSString *stringURL = @purecalc://support"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Add new items to the todo list:
roundtuit://add/[todo item 1]/[todo item 2]/[todo item 3]/...
NSArray *todos = [NSArray arrayWithObjects:@"todo item 1", @"todo item 2"]; NSString *stringURL = [NSString stringWithFormat:@"roundtuit://add/%@", [todos componentsJoinedByString:@"/"]]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To launch the application:
NSString *stringURL = @"ships2://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To launch the application:
NSString *stringURL = @"checkit://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Check current url:
NSString *whatever = @"http://whatever.com"; NSString *stringURL = [NSString stringWithFormat:@"checkit://%@", whatever]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To launch the application:
NSString *stringURL = @"surfboard://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Add a bookmark / site into the app:
NSString *URL = @"whatever.com"; NSString *title = @"nonEscapedTitle"; //you will want to escape these before sending real titles / URLS NSString *stringURL = [NSString stringWithFormat:@"surfboard://add?url=%@&title=%@", URL,title]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Bookmarklet usage of this
To launch the application:
NSString *stringURL = @"timelog://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Start a timer for a project
NSString * clientName = @"John%20Appleseed"; NSString * projectName = @"Just%20another%20project"; NSString * categoryName = @"Webdesign"; NSString *stringURL = [NSString stringWithFormat:@"timelog://start?client=%@&project=%@&category=%@", clientName,projectName, categoryName]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
[1]
The URL scheme to open Timer is timer://One or several actions can be added to this scheme, as the query parameters.
Here are the different actions.They take, as values, a coma separated list of screens (represented by their position in the tab bar of Timer).
The x-success parameter from the x-callback-url protocol can be used to go back to the source app.
Samples :
timer:// : Open Timer timer://?resumepause=1 : Open Timer and pause (or resume) the first timer. timer://?show=0 : Open Timer and show the list screen. timer://?start=1,2&x-success=http%3A%2F%2Fpacolabs.com%2FiOS%2FTimer%2F%23Help : Open Timer, start timers 1 and 2 and goes to safari. timer://?stop=0&show=1&start=1&lock=1 : Stop all the timers, show timer 1, start it and lock the screen.
To launch the application:
NSString *stringURL = @"tomtomhome://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Taken from the official Tweetbot URL schemes page:
Valid as of version 1.0.2
tweetbot:///timeline tweetbot:// /mentions tweetbot:// /retweets tweetbot:// /direct_messages tweetbot:// /lists tweetbot:// /favorites tweetbot:// /search tweetbot:// /search?query= tweetbot:// /status/ tweetbot:// /user_profile/ tweetbot:// /post tweetbot:// /post?text=
The
Valid as of version 1.3
tweetbot:///post?text= &callback_url= &in_reply_to_status_id= tweetbot:// /search?query= &callback_url= tweetbot:// /status/ ?callback_url= tweetbot:// /user_profile/ ?callback_url= tweetbot:// /follow/ tweetbot:// /unfollow/ tweetbot:// /favorite/ tweetbot:// /unfavorite/ tweetbot:// /retweet/
The argument callback_url is an URL encoded URL that will be opened in Safari once the Post view closes.
Valid as of version 1.4
tweetbot:///list/ ?callback_url=
To launch the application:
NSString *stringURL = @"tweetie://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Start a tweet with a shortened URL:
NSString *shortened_url = @"http://your.url.com"; NSString *stringURL = [NSString stringWithFormat:@"tweetie://%@", shortened_url]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Send a message:
NSString *message = @"your%20message%20here"; // It must be URL-encoded...! NSString *stringURL = [NSString stringWithFormat:@"tweetie:///post?message=%@", message]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
The author has really done a great job documenting this URL scheme! Check it out!
Launch the application:
NSURL* url = [NSURL URLWithString:@"twit://"]; [[UIApplication sharedApplication] openURL:url];
Send a message:
NSString *message = @"URL%20encoded%20message%20here"; NSString *stringURL = [NSString stringWithFormat:@"twit:///post?message=%@", message]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To launch the application:
NSString *stringURL = @"twitter://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Parameters: (provided by Luis Fernández, thanks!)
twitter://status?id=12345 twitter://user?screen_name=lorenb twitter://user?id=12345 twitter://status?id=12345 twitter://timeline twitter://mentions twitter://messages twitter://list?screen_name=lorenb&slug=abcd twitter://post?message=hello%20world twitter://post?message=hello%20world&in_reply_to_status_id=12345 twitter://search?query=%23hashtag
To launch the application:
NSString *stringURL = @"twitterrific://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To write a tweet:
NSString *message = @"hello!"; NSString *stringURL = [NSString stringWithFormat:@"twitterrific:///post?message=%@", message]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
(1.4 or above, formerly Shattered)
To launch a Flickr photo puzzle with hidden message:
NSMutableDictionary* code = [NSMutableDictionary dictionaryWithCapacity:7]; [code setObject:senderNameString forKey:@"name"]; [code setObject:messageString forKey:@"message"]; [code setObject:photoSourceURLString forKey:@"URL"]; [code setObject:photoIdString forKey:@"id"]; [code setObject:photoSecretString forKey:@"secret"]; [code setObject:[NSNumber numberWithInt:numberOfPieces] forKey:@"piece"]; [code setObject:[NSNumber numberWithBool:rotationOnOrOff] forKey:@"rotation"]; NSString* JSONString = [code JSONRepresentation]; NSData* data = [JSONString dataUsingEncoding:NSUTF8StringEncoding]; NSString* base64String = [data base64Encoding]; //modified Base64 for URL NSString* unfragmentURLString = [NSString stringWithFormat:@"unfragment://?code=%@", base64String]; NSURL *url = [NSURL URLWithString:unfragmentURLString]; [[UIApplication sharedApplication] openURL:url];
NSString *stringURL = [NSString stringWithFormat:@"wikiamo://%@", page]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
NSString *stringURL = [NSString stringWithFormat:@"wikipedia://%@", page]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
NSString *stringURL = [NSString stringWithFormat:@"yummy://post?url=%@&title=%@", encoded_url, encoded_title]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
URL examples to launch a search for a name or phone number:
localch://tel/q?vikram
localch://tel/q?0443091040
NSString *stringURL = [NSString stringWithFormat:@"localch://tel/q?%@", encoded_query]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Open app on Spaces (Page 1)
NSString *stringURL = [NSString stringWithString:@"x-seesmic://spaces"]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Open app on Main Timeline for the Twitter account “mathieu”
NSString *username = @"mathieu"; NSString *stringURL = [NSString stringWithFormat:@"x-seesmic://twitter_timeline?twitter_screen_name=%@", username]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Open app on Replies for account “mathieu”
NSString *username = @"mathieu"; NSString *stringURL = [NSString stringWithFormat:@"x-seesmic://twitter_replies?twitter_screen_name=%@", username]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Open app on Retweets for account “mathieu”
NSString *username = @"mathieu"; NSString *stringURL = [NSString stringWithFormat:@"x-seesmic://twitter_retweets?twitter_screen_name=%@", username]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Open app on Direct Messages for account “mathieu”
NSString *username = @"mathieu"; NSString *stringURL = [NSString stringWithFormat:@"x-seesmic://twitter_messages?twitter_screen_name=%@", username]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Open app on the Twitter profile view for “mathieu”
NSString *username = @"mathieu"; NSString *stringURL = [NSString stringWithFormat:@"x-seesmic://twitter_profile?twitter_screen_name=%@", username]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Open app on tweet view for Tweet ID “2814526203”
NSString *tweet_id = @"2814526203"; NSString *stringURL = [NSString stringWithFormat:@"x-seesmic://twitter_status?id=%@", tweet_id]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Open app on the Twitter search results for query “Apple iPhone”
// Query will be encoded using stringByAddingPercentEscapesUsingEncoding NSString *search_query = @"Apple%20iPhone"; NSString *stringURL = [NSString stringWithFormat:@"x-seesmic://twitter_search?query=%@", search_query]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Open app on the Facebook Main Timeline (if the user added a Facebook account, or else the Spaces view will be launched)
NSString *stringURL = [NSString stringWithString:@"x-seesmic://facebook_timeline"]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Open app on Composer view for the Twitter account “mathieu” and with the content “this is a tweet” in the text field
// Query will be encoded using stringByAddingPercentEscapesUsingEncoding NSString *message = @"this%20is%20a%20tweet"; NSString *username = @"mathieu"; NSString *stringURL = [NSString stringWithFormat:@"x-seesmic://update?twitter_screen_name=%@&status=%@", username, message]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
// Query will be encoded using stringByAddingPercentEscapesUsingEncoding NSString *message = @"this%20is%20a%20tweet%20with%20a%20url%3A%20http%3A%2F%2F"; NSString *username = @"mathieu"; NSString *stringURL = [NSString stringWithFormat:@"x-seesmic://update?twitter_screen_name=%@&status=%@", username, message]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Open the Composer view without knowing the account and with the content “this is a tweet” in the text field
// Query will be encoded using stringByAddingPercentEscapesUsingEncoding NSString *message = @"this%20is%20a%20tweet"; NSString *stringURL = [NSString stringWithFormat:@"x-seesmic://update?status=%@", message]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Open app on Composer view (no content, no account app will select default account)
NSString *stringURL = [NSString stringWithString:@"x-seesmic://update"]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Launch app
NSString *stringURL = [NSString stringWithString:@"offlinepages:"]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Launch app and add URL http://www.apple.com to save queue
NSString *httpURL = [NSString stringWithString:@"http://www.apple.com"]; NSString *offlineURL = [NSString stringWithFormat:@"offlinepages:%@", httpURL]; NSURL *url = [NSURL URLWithString:offlineURL]; [[UIApplication sharedApplication] openURL:url];
Launch app and add URL http://www.apple.com to save queue with custom title "Apple website"
NSString *httpURL = [NSString stringWithString:@"http://www.apple.com"]; NSString *title= [NSString stringWithString:@"Apple website"]; NSString *encodedTitle = [title stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; NSString *offlineURL = [NSString stringWithFormat:@"offlinepages:title=%@&url=%@", encodedTitle, httpURL]; NSURL *url = [NSURL URLWithString:offlineURL]; [[UIApplication sharedApplication] openURL:url];
Launch the application:
NSString *stringURL = @"terminology://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Lookup a word or phrase in the dictionary:
NSString *template = @"terminology://x-callback-url/1.0/lookup?text=%@"; NSString *text = @"fun"; NSString *stringURL = [NSString stringWithFormat:template, text]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Request a replacement word also available, see full developer documentation
Launch the application:
NSString *stringURL = @"zentap://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Launch the applicaction with text:
NSString *stringURL = @"zentap://myTextToShowInZenTap"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Launch the application:
NSString *stringURL = @"zentappro://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Launch the applicaction with text:
NSString *stringURL = @"zentappro://myTextToShowInZenTap"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
TextFaster is a keyboard with keys six times bigger than the usual keyboard.
Launch the application with url and it will open.
NSString *stringURL = @"keyboard://?text=Hello%20World&fromapp=mailto"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
This information was provided by Bryan Clark from the Threadnote team!
Threadnote is a tweet-like private notes app for the iPhone.
NSString *stringURL = @"threadnote://new?text=hello"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
This URL would make a new note with the text "hello".
TikiSurf is a mobile browser with fast access to websites, maps, apps through a visual touch panel.
Launch the application alone or with a collection url to open it at startup.
Application alone:
NSString *stringURL = @"tikisurf://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Launch a collection from url:
Full list of existing collections
Tool to create your own collection
NSString *stringURL = @"tikisurf://activateGrammar?url=http://get.tikilabs.com/grammars/rzi10d8292gwy0fj.html"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
http://www.waze.com
App Store: http://itunes.apple.com/us/app/id323229106?mt=8&ign-mpt=uo%3D6
NSString *stringURL = @"waze://?ll=37.331689,-122.030731&z=10"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
examples:show on map:waze://?ll=37.331689,-122.030731&z=10
navigate:waze://?ll=37.331689,-122.030731&navigate=yes
options:search for address:q=
center map to lat / lon:ll=
set zoom (minimum is 6):z=
auto start navigation:navigate=yes
http://itunes.apple.com/us/app/webmail/id392501588?mt=8
NSString *stringURL = @"wpp://account/UNIQUE_ID"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
where 'UNIQUE_ID' is the ID of your account. This can be obtained in the settings of the application under Push Notifications. This will launch my application and immediately load the webmail account specified by the ID.
This link is courtesy of Orwin Gentz from FutureTap!
NSURL *whereToUrl = [NSURL URLWithString:@"whereto://?search=Bars"]; [[UIApplication sharedApplication] openURL:whereToUrl];
The URL scheme is whereto (or whereto5 to require Where To? 5.0 or higher). The following GET query parameters are supported:
More information at the Where To? API page
Tabula Rasa is a Universal Remote Control Editor app which is used to create "Virtual Remotes" that you can use to control your IR Devices (TV, DVD..) and Computers (PC, Mac, Linux). The app requires the iWavit hardware accessory which adds new hardware capabilities to the iPhone, iPad, and iPod touch (http://www.iwavit.com).
Launch the application alone with this call
NSString *stringURL = @"wavittabularasa://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
There are many other iWavit apps (>30), that tend to have names like iWavit PS3 or iWavit DirecTV, which are apps dedicated to controlling specific major brand electronics devices. These apps all tend to follow the same URL Schemes:@"wavitxxx://"where xxx is the name after the iWavit, all lower case.