转自: http://wiki.akosma.com/IPhone_URL_Schemes
IPhone URL Schemes
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.
Terms of Use
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.
Programming Tips
Registering your own URL schemes
Please check this page in iPhone Developer Tips.
Note about URL Encoding in Objective-C
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); }
Apple iPhone Applications
Safari
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.
Maps
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.
Phone
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];
SMS
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:test@example.com"; 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 = @"test1@akosma.com"; NSString *cc = @"test2@akosma.com"; 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.
Music / iPod
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!
YouTube
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];
Videos
To open the Videos application, use the "videos:" URL:
NSString *stringURL = @"videos:"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
iTunes
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];
App Store
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];
iBooks
(source: http://akos.ma/aqdr)
NSString *stringURL = @"itms-books:"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
NSString *stringURL = @"itms-bookss:"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Third Party Applications
AirSharing
Launch the application:
NSString *stringURL = @"airsharing://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Alocola
Launch the application:
NSString *stringURL = @"alocola://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Appigo Notebook
Launch the application:
NSString *stringURL = @"appigonotebook://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Appigo Todo
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];
Duo
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];
The Cartographer
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];
ChatCo
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];
Cobi Tools
To email device info:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"cobitools://emailInfo?email=john@appleseed.com"]];
To email console logs:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"cobitools://emailLog?email=john@appleseed.com&filter=textFilter&appname=AppName"]];
Credit Card Terminal
Launch the application:
NSString *stringURL = @"com-innerfence-ccterminal://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Darkslide (formerly Exposure)
To launch the application:
NSString *stringURL = @"exposure://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Echofon / Echofon Pro (formerly Twitterfon / Twitterfon Pro)
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];
Eureka
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];
Explorimmo immobilier
NSString *stringURL = @"explorimmo://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
This information comes from the iPhoneDevTools website.
NSURL *url = [NSURL URLWithString:@"fb://<insert function here>"]; [[UIApplication sharedApplication] openURL:url];
You can use these options:
- fb://profile – Open Facebook app to the user’s profile
- fb://friends – Open Facebook app to the friends list
- fb://notifications – Open Facebook app to the notifications list (NOTE: there appears to be a bug with this URL. The Notifications page opens. However, it’s not possible to navigate to anywhere else in the Facebook app)
- fb://feed – Open Facebook app to the News Feed
- fb://events – Open Facebook app to the Events page
- fb://requests – Open Facebook app to the Requests list
- fb://notes- Open Facebook app to the Notes page
- fb://albums – - Open Facebook app to Photo Albums list
This "works" but, then again, doesn't:
- fb://post/<post_id>
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!):
- fb://album/%@
- fb://album/(aid)
- fb://album/(aid)/cover
- fb://album/(initWithAID:)
- fb://album/(initWithAID:)/cover
- fb://album/new
- fb://albums
- fb://birthdays
- fb://birthdays/(initWithMonth:)/(year:)
- fb://birthdays/(month)/(year)
- fb://chat/(fbid)
- fb://chat/(initWithUID:)
- fb://chat/(user.fbid)
- fb://contactimporter
- fb://contactimporter/invites
- fb://contactimporter/legalese
- fb://contactimporter/modal
- fb://event/%@
- fb://event/%llu
- fb://event/(event.fbid)/members/(rsvpStatus)
- fb://event/(fbid)
- fb://event/(fbid)/members/attending
- fb://event/(fbid)/members/declined
- fb://event/(fbid)/members/not_replied
- fb://event/(fbid)/members/unsure
- fb://event/(fbid)/rsvp
- fb://event/(initWithEventId:)
- fb://event/(initWithEventId:)/members/(rsvpStatus:)
- fb://event/(initWithEventId:)/rsvp
- fb://events
- fb://events/
- fb://faceweb/(initWithURL:)
- fb://facewebmodal/(initWithURL:)
- fb://feed
- fb://feed/%@
- fb://feed/(filter.filterKey)
- fb://feed/(initWithFilterKey:)
- fb://feedfilters
- fb://findfriends
- fb://findfriends/legalese
- fb://findfriends/modal
- fb://friends
- fb://friends/picker
- fb://friends/sync
- fb://friends/sync/(removeData:)
- fb://friends/sync/disconnect
- fb://friends/sync/legalese
- fb://group/(fbid)/members
- fb://group/(initWithGroupId:)/members
- fb://groups
- fb://launcher
- fb://mailbox
- fb://mailbox/(folder)
- fb://mailbox/(initWithFolder:)
- fb://mailbox/(initWithFolder:)/(tid:)
- fb://mailbox/(mailbox.folder)/(tid)
- fb://mailbox/compose
- fb://mailbox/compose/(fbid)
- fb://mailbox/compose/(initWithUID:)
- fb://map
- fb://messaging
- fb://messaging/(folder)
- fb://messaging/(initWithFolder:)
- fb://messaging/(initWithFolder:)/(tid:)/participants
- fb://messaging/(initWithFolder:)/thread?tid=(tid:)
- fb://messaging/(mailbox.folder)/(urlEscapedTid)/participants
- fb://messaging/(mailbox.folder)/thread?tid=(urlEscapedTid)
- fb://messaging/compose
- fb://messaging/compose/(fbid)
- fb://messaging/compose/(initWithUID:)
- fb://messaging/original_message?mid=(commentId)
- fb://messaging/original_message?mid=(initWithMessageId:)
- fb://nearby
- fb://note/%@
- fb://note/(initWithNoteId:)
- fb://note/(initWithNoteId:)/edit
- fb://note/(noteId)
- fb://note/(noteId)/edit
- fb://note/compose
- fb://notes
- fb://notifications
- fb://online
- fb://online#offline
- fb://online#online
- fb://pages
- fb://photo/%@/0/%@
- fb://photo/(album.user.fbid)/(album.aid)/(pid)
- fb://photo/(album.user.fbid)/(album.aid)/(pid)/feedback
- fb://photo/(fbid)/profilepic
- fb://photo/(initWithProfilePicturesUID:)/profilepic
- fb://photo/(initWithUID:)/(aid:)/(pid:)
- fb://photo/(initWithUID:)/(aid:)/(pid:)/feedback
- fb://photosapp
- fb://place/%@
- fb://place/(initWithPageId:)
- fb://place/(targetId)
- fb://place/addfriends
- fb://place/addphoto
- fb://place/create
- fb://places
- fb://places/%lld/%lld
- fb://places/(initWithCheckinAtPlace:)/(byUser:)
- fb://places/legalese/tagged/%lld/%lld
- fb://places/legalese/tagged/(initWithTaggedAtPlace:)/(byUser:)
- fb://post/%@
- fb://post/%@_%@
- fb://post/(initWithPostId:)
- fb://post/(initWithPostId:)/tagged
- fb://post/(postId)
- fb://post/(postId)/tagged
- fb://post/(postId)/untagSelf
- fb://post/(untagSelfFromPostWithId:)/untagSelf
- fb://profile
- fb://profile/
- fb://profile/%@
- fb://profile/%lld
- fb://profile/(addFan:)/addfan
- fb://profile/(fbid)
- fb://profile/(fbid)/addfan
- fb://profile/(fbid)/addfriend
- fb://profile/(fbid)/fanpages
- fb://profile/(fbid)/fans
- fb://profile/(fbid)/favorite
- fb://profile/(fbid)/friends
- fb://profile/(fbid)/info
- fb://profile/(fbid)/menu
- fb://profile/(fbid)/mutualfriends
- fb://profile/(fbid)/photos
- fb://profile/(fbid)/poke
- fb://profile/(fbid)/removefriend
- fb://profile/(fbid)/wall
- fb://profile/(initWithFBID:)/menu
- fb://profile/(initWithFansUID:)/fans
- fb://profile/(initWithFriendsUID:)/friends
- fb://profile/(initWithInfoUID:)/info
- fb://profile/(initWithMutualFriendsUID:)/mutualfriends
- fb://profile/(initWithPhotosUID:)/photos
- fb://profile/(initWithUID:)
- fb://profile/(initWithUID:)/addfriend
- fb://profile/(initWithUID:)/fanpages
- fb://profile/(initWithUID:)/poke
- fb://profile/(initWithUID:)/removefriend
- fb://profile/(initWithWallUID:)/wall
- fb://profile/(toggleFavorite:)/favorite
- fb://profile/(user.fbid)/fans
- fb://profile/(user.fbid)/friends
- fb://profile/(user.fbid)/mutualfriends
- fb://profile/0
- fb://publish
- fb://publish/mailbox/(initWithFolder:)/(tid:)
- fb://publish/mailbox/(mailbox.folder)/(tid)
- fb://publish/photo/(album.user.fbid)/(album.aid)/(pid)
- fb://publish/photo/(initWithUID:)/(aid:)/(pid:)
- fb://publish/post/(initWithPostId:)
- fb://publish/post/(postId)
- fb://publish/profile/(fbid)
- fb://publish/profile/(initWithUID:)
- fb://publish/profile/(owner.fbid)
- fb://requests
- fb://root
- fb://upload
- fb://upload/%@/album/%lld/%@
- fb://upload/%@/checkin/%lld
- fb://upload/%@/profile/%lld
- fb://upload/(initWithSource:)/album/(uid:)/(aid:)
- fb://upload/(initWithSource:)/checkin/(checkinId:)
- fb://upload/(initWithSource:)/profile/(uid:)
- fb://upload/actions
- fb://upload/actions/album/(initWithUID:)/(aid:)
- fb://upload/actions/album/(user.fbid)/(aid)
- fb://upload/actions/checkin/(checkinId)/
- fb://upload/actions/checkin/(initWithCheckinId:)
- fb://upload/actions/newalbum
- fb://upload/actions/profile/(fbid)
- fb://upload/actions/profile/(initWithUID:)
- fb://upload/actions/resume
- fb://upload/album/(showUploadMenuWithUID:)/(aid:)
- fb://upload/album/(user.fbid)/(aid)
- fb://upload/checkin/(checkinId)
- fb://upload/checkin/(showUploadMenuWithCheckinID:)
- fb://upload/discard
- fb://upload/profile/(fbid)
- fb://upload/profile/(owner.fbid)
- fb://upload/profile/(showUploadMenuWithUID:)
- fb://upload/resume
- fb://userset
- fb://video/%@
- fb://video/(playVideoWithId:)
- fb://video/(videoId)
Says Sam Cornwell:
As of the most recent facebook update 4.0 for iPhone and iPad,
- fb://page/(fbid) will work to open to a specific page.
- and fb://place/(fbid) will take you to a location page
Geocaching Buddy ( GCBuddy )
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.
Geopher Lite
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];
Google Earth
To launch the application:
NSString *stringURL = @"comgoogleearth://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
IMDb Movies & TV
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.
INRIX Traffic
Launch the application (as of version 3.1):
NSString *stringURL = @"inrixtraffic://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
iTranslate ~ the universal translator
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
Junos Pulse VPN app for iOS
NSString *stringURL = @"junospulse://<server-host>/<server-path>?method={vpn}&action={start|stop}"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Loan Plan - Amortization Calculator
To launch the application:
NSString *stringURL = @"loanplan://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Navigon
Example of a URL to start navigation to an address:
navigon://-|-|CHE|8052|Z=C3=9CRICH|KATZENBACHSTRASSE|51|-|-|***|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
Notitas
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];
OpenTable
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];
Opera Mini
Following URL schemes are handled by Opera Mini 7.0 and later:
- ohttp:// e.g. ohttp://www.opera.com/
- ohttps://
- oftp://
NSString *stringURL = @"ohttp://www.opera.com/"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
pic2shop
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]
URL Scheme: pinit12://pinterest.com/pin/create/bookmarklet/?
NSURL *url = [NSURL URLWithString:@"pinit12://pinterest.com/pin/create/bookmarklet/?"]; [[UIApplication sharedApplication] openURL:url]
Parameters:
- media: a direct link to the image or I think an encoded image (base64?)
- url: the URL of the source website where the image was found
- description: 500 characters max
- is_video: self describing
Portscan
Launch a scan:
NSString *ip = @"192.168.1.1"; NSString *stringURL = [NSString stringWithFormat:@"portscan://%@", ip]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Round Tuit
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];
Ships² Viewer
To launch the application:
NSString *stringURL = @"ships2://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Site Check
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];
Surfboard (iPad)
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];
TimeLog
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];
TomTom
To launch the application:
NSString *stringURL = @"tomtomhome://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Tweetbot
Taken from the official Tweetbot URL schemes page:
Valid as of version 1.0.2
tweetbot://<screenname>/timeline tweetbot://<screenname>/mentions tweetbot://<screenname>/retweets tweetbot://<screenname>/direct_messages tweetbot://<screenname>/lists tweetbot://<screenname>/favorites tweetbot://<screenname>/search tweetbot://<screenname>/search?query=<text> tweetbot://<screenname>/status/<tweet_id> tweetbot://<screenname>/user_profile/<profile_screenname> tweetbot://<screenname>/post tweetbot://<screenname>/post?text=<text>
The <screename> argument is optional. You may include it to go to a specific account or leave it blank and either the current or default user account will be chosen instead. As usual all query <text> should be URL encoded and other then that everything should be pretty obvious.
Valid as of version 1.3
tweetbot://<screenname>/post?text=<text>&callback_url=<url>&in_reply_to_status_id=<tweet_id> tweetbot://<screenname>/search?query=<text>&callback_url=<url> tweetbot://<screenname>/status/<tweet_id>?callback_url=<url> tweetbot://<screenname>/user_profile/<screenname|user_id>?callback_url=<url> tweetbot://<screenname>/follow/<screenname|user_id> tweetbot://<screenname>/unfollow/<screenname|user_id> tweetbot://<screenname>/favorite/<tweet_id> tweetbot://<screenname>/unfavorite/<tweet_id> tweetbot://<screenname>/retweet/<tweet_id>
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://<screenname>/list/<list_id>?callback_url=<url>
Tweetie
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];
Twinkle
To launch the application:
NSString *stringURL = @"twinkle://"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
To send a message:
NSString *stringURL = @"twinkle://message=text&url=http://foo&image=http://path.to/image.jpg"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Twittelator Pro
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];
Twitterriffic / Twitterriffic Premium
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];
Unfragment
(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];
Wikiamo
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];
Yummy
NSString *stringURL = [NSString stringWithFormat:@"yummy://post?url=%@&title=%@", encoded_url, encoded_title]; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Swiss Phone Book by local.ch (from version 1.5)
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];
Seesmic
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];
Offline Pages
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];
Terminology
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
ZenTap
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];
ZenTap Pro
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
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];
TikiSurf
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 here : http://prod1.tikilabs.com/pushContent/iphone/annuaireUnivers/ tool to create your own collection here : http://www.tikisurf.fr/factoryEN.php
NSString *stringURL = @"tikisurf://activateGrammar?url=http://get.tikilabs.com/grammars/rzi10d8292gwy0fj.html"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];
Waze
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=<address search term>
center map to lat / lon: ll=<lat>,<lon>
set zoom (minimum is 6): z=<zoom>
auto start navigation: navigate=yes
Webmail+
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.
iWavit Tabula Rasa
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.