Launching Other Apps within an iPhone Application

來源:互聯網
上載者:User
Posted on October 16, 2008 by Rodney Aiglstorfer" href="http://iphonedevelopertips.com/author/rodney/">Rodney Aiglstorfer
in posts in Cocoa" rel="category tag" href="http://iphonedevelopertips.com/category/cocoa">Cocoa

 

In an earlier
post
I talked about how to launch the browser from within an iPhone
application using the UIApplication:openURL:
method.

It is also possible to use this same technique to launch other
applications on the iPhone that are very useful.

Examples of some of the key applications that you can launch via URL
are:

  • Launch the Browser (see
    earlier post
    )
  • Launch Google Maps
  • Launch Apple Mail
  • Dial a Phone Number
  • Launch the SMS Application
  • Launch the Browser
  • Launch the AppStore

 

Launch Google Maps

The URL string for launching Google Maps with a particular keyword
follows this structure:

http://maps.google.com/maps?q=${QUERY_STRING}

The only trick to this is to ensure that the value for the ${QUERY_STRING}
is properly URL encoded. Here is a quick example of how you would
launch Google Maps for a specific address:

1
2
3
4
5
6
7
8
9
10
11
// Create your query ...
NSString* searchQuery = @"1 Infinite Loop, Cupertino, CA 95014";
 
// Be careful to always URL encode things like spaces and other symbols that aren't URL friendly
searchQuery = [addressText stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
 
// Now create the URL string ...
NSString* urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@", searchQuery];
 
// An the final magic ... openURL!
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlText]];
Launch Apple Mail

Also very useful, is the ability to enable a user to quickly send an
email by launching the email client in compose mode and the address
already filled out. The format of this URI should be familiar to anyone
that has done any work with HTML and looks like this:

mailto://${EMAIL_ADDRESS}

For example, here we are opening the email application and filling
the “to:” address with info@iphonedevelopertips.com
:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://info@iphonedevelopertips.com"]];
Dial a Phone Number (iPhone Only)

You can use openURL:
to dial a phone number. One
advantage this has over other URLs that launch applications, is that the
dialer will return control back to the application when the user hits
the “End Call” button.

Anyone familiar with J2ME or WML will find this URL scheme familiar:

tel://${PHONE_NUMBER}

Here is an example of how we would dial the number (800) 867-5309:

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

NOTE
When providing an international number you will
need to include the country code.

Launch the SMS Application

Also not supported by the iPod Touch, is the ability to quickly setup
the SMS client so that your users can quickly send a text message. It
is also possible to provide the body of the text message.

The format looks like this:

sms:${PHONENUMBER_OR_SHORTCODE}

NOTE:
Unlike other URLs, an SMS url doesn’t use the
“//” syntax. If you add these it will assume it is part of the phone
number which is not.

1
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:55555"]];

NOTE:
According to the official SMS specification,
you should be able to send a body as well as the phone number by
including “?body=” parameter on the end of the URL … unfortunately Apple
doesn’t seem to support this standard.

Launching the AppStore

Finally, it is worth noting that you can launch the AppStore and have
the "buy" page of a specific application appear. To do this, there is
no special URL scheme. All you need to do is open up iTunes to the
application you want to launch; right-click on the application icon at
the top left of the page; and select Copy iTunes Store URL
.

The URL will look something like this:

http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=291586600&mt=8

Launching the AppStore URL is exactly the same as you would launch
the browser. Using the link above, here is an example of how we would
launch the AppStore:

1
2
NSURL *appStoreUrl = [NSURL URLWithString:@"http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=291586600&mt=8"];
[[UIApplication sharedApplication] openURL:appStoreUrl];
Share with other iOS Developers:

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

http://iphonedevelopertips.com/cocoa/launching-the-browser-from-within-an-iphone-application.html

 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

It depends on the app you wish to launch. Some
of them register URLs that let you launch links like itunes:// and the
like. Check this out: http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StandardBehaviors/StandardBehaviors.html#//apple_ref/doc/uid/TP40007072-CH4-SW7

The important section is the one entitled "Implementing Custom URL
Schemes".

EDIT: Here's a link to a website that catalogs the various URLs for
existing apps: http://handleopenurl.com/
.

 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

http://stackoverflow.com/questions/3443346/can-an-ipad-app-directly-launch-another-app

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.