2.19. Loading Web Pages with UIWebView

Problem

You want to load a web page dynamically right inside your iOS app.

Solution

Use the UIWebView class.

Discussion

A web view is what the Safari browser uses on iOS to load web content. You have the whole power of Safari in your iOS apps through the UIWebView class. All you have to do is to place a web view on your UI and use one of its loading methods:

loadData:MIMEType:textEncodingName:baseURL:

Loads an instance of NSData into the web view.

loadHTMLString:baseURL:

Loads an instance of NSString into the web view. The string should be a valid HTML, or in other words, something that a web browser can render.

loadRequest:

Loads an instance of NSURLRequest. This is useful when you want to load the contents of a remote URL into a web view inside your application.

Let’s see an example. We’ll start with the header file of our view controller:

#import <UIKit/UIKit.h>

@interface Loading_Web_Pages_with_UIWebViewViewController
           : UIViewController

@property (nonatomic, strong) UIWebView *myWebView;

@end

And as you know, we will now synthesize our property:

#import "Loading_Web_Pages_with_UIWebViewViewController.h"

@implementation Loading_Web_Pages_with_UIWebViewViewController

@synthesize myWebView;

...

Now I would like to load the string iOS 5 Programming Cookbook into the web view. To prove things are working as expected and that our web view is capable of rendering rich text, I will go ahead and make the Programming part bold while leaving the rest of the text ...

Get iOS 5 Programming Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.