IPhone URL Schemes

转自: 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.

Contents

  [hide]

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.

Mail

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=%@&note=%@&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)

(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];

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];

Facebook

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]

Pinterest

Source

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];

Bookmarklet usage of this

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];


Twitter

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

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=<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.


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值