Invoking Safari
Occasionally, it may be appropriate to call Safari to bring up a web page for your application; for example, when the user presses a "donate" or "home page" button in your application's credits page. The UIApplication class supports an openURL method that can be used to seamlessly launch Safari and load a web page in a new window.
To use this, your application needs to create an NSURL object. You were introduced to the NSURL in Chapter 6, when recording sound with Celestial, and again in Chapter 7 when exploring web views. The NSURL object is passed to the application's openURL method, where the application framework processes and launches the appropriate handler application.
NSURL *url; url = [ [ NSURL alloc ] initWithString: @"http://www.oreilly.com" ]; [ self openURL: url ];
Example: LaunchURL
In this example, the user calls the LaunchURL program from the command line with a URL as a command-line argument:
$ LaunchURL http://www.oreilly.com
To compile this application, use the tool chain on the command line as follows:
$ arm-apple-darwin-gcc -o LaunchURL LaunchURL.m -lobjc \
-framework UIKit -framework CoreFoundation -framework Foundation
Example A-2 contains the code.
Example A-2. openURL example (LaunchURL.m)
mport <UIKit/UIKit.h> @interface LaunchURLApp : UIApplication { NSString *inputURL; } - (id)_initWithArgc:(int)argc argv:(const char **)argv; - (void)applicationDidFinishLaunching:(NSNotification *)aNotification; @end @implementation LaunchURLApp - (id)_initWithArgc:(int)argc ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access