iOS程序中调用系统自带应用(短信,邮件,浏览器,地图,appstore,拨打电话)

在程序中调用系统自带的应用,比如我进入程序的时候,希望直接调用safar来打开一个网页,下面是一个简单的使用:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];

    self.window.rootViewController = self.viewController;

    [self.window makeKeyAndVisible];

    

    //调用safar打开网页    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.cnblogs.com/foxmin"]];

////调用app store (省略号后面加的是产品的id等一些参数)

//    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.apple.com/app/……"]];

//    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/app/ "]];

////调用电话

//    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://XXXXX"]];

////调用SMS

//    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://XXXXX"]];

////调用Remote

//    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"remote://XXX"]];    

    return YES;

}
复制代码


查看更多iPhone应用程序的调用和第三方应用程序的调用,可以在iPhone的URL方案查看。下面列举部分:

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

Apparentlyfeed:// openshttp://reader.mac.comin Safari.

Maps

URLs starting withhttp://maps.google.comopen 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 seemsthat 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:[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.

YouTube

URLs starting withhttp://www.youtube.comopen 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];

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

Most URL schemes in this list come fromApp Lookup.

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

你可能感兴趣的:(store)