RAMAN RANA
RAMAN RANA

Reputation: 1795

How can I load a local HTML file into the UIWebView?

How can we load our own html file into the UIWebView?

Upvotes: 25

Views: 38223

Answers (7)

Nupur Gupta
Nupur Gupta

Reputation: 7

NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"privacy-Policy" ofType:@"html" inDirectory:nil];
NSData *htmlData = [NSData dataWithContentsOfFile:htmlFile];
[webView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@""]];

Upvotes: 0

siege_Perilous
siege_Perilous

Reputation: 1109

Apple's documentation suggests using loadHTMLString:baseURL::

Use the loadHTMLString:baseURL: method to begin loading local HTML files or the loadRequest: method to begin loading web content. Use the stopLoading method to stop loading, and the loading property to find out if a web view is in the process of loading.

The loadHTMLString:baseURL: documentation offers further reasoning:

To help you avoid being vulnerable to security attacks, be sure to use this method to load local HTML files; don’t use loadRequest:.

This one might help: https://stackoverflow.com/a/29741277

Upvotes: 1

Sruit A.Suk
Sruit A.Suk

Reputation: 7273

Swift Version 2.1

// load html to String with Encoding
let path = NSBundle.mainBundle().pathForResource("policy", ofType: "html")
do {
    let fileHtml = try NSString(contentsOfFile: path!, encoding: NSUTF8StringEncoding)
    webView.loadHTMLString(fileHtml as String, baseURL: nil)
}
catch {

}

Upvotes: 0

Oded Regev
Oded Regev

Reputation: 4405

Swift

    guard let path = NSBundle.mainBundle().pathForResource("index", ofType: "html") else {
        return
    }

    let url = NSURL(fileURLWithPath: path)
    self.webview.loadRequest(NSURLRequest(URL:url))

Upvotes: 6

deanWombourne
deanWombourne

Reputation: 38475

Cody Gray is right but there's also this way :

// Load the html as a string from the file system
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSString *html = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

// Tell the web view to load it
[WebView loadHTMLString:html baseURL:[[NSBundle mainBundle] bundleURL]];

This is useful if you need to edit the html before you load it.

Upvotes: 28

Teja Swaroop
Teja Swaroop

Reputation: 1169

By using following code you can load an html in an WebView.here web is web view obj and inde

Web.delegate = self;

[Web loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]isDirectory:NO]]];

Upvotes: 2

Cody Gray
Cody Gray

Reputation: 244961

The following code will load an HTML file named index.html in your project folder:

[WebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]isDirectory:NO]]];

Upvotes: 64

Related Questions