I have to load an html string onto the UIWebView with \'LoadHTMLString\' method of UIWebView.
Please find the below code.
[wv loadHTMLString:[NSString st
After two days, long sleep, I've come up with this.
Swift
let path = NSBundle.mainBundle().pathForResource("public_html/index", ofType: "html")
var html = try? NSString(contentsOfFile: path! as String, encoding: NSUTF8StringEncoding)
html = html?.stringByReplacingOccurrencesOfString("#latitude#", withString:"<p class=\"text-center\">Center aligned text.</p><blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p></blockquote>")
webView.loadHTMLString(html as! String, baseURL: NSURL(fileReferenceLiteral: "public_html"))
First, my HTML code is in my project ( public_html/index.html ). This code loads the HTML, converts it, replaces the tag '#latitude#' and loads the HTML using the directory ( for loading JS, etc.).
You just need to create one html file and put all html content in it, And use code to load that file
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"filename" ofType:@"html"] isDirectory:NO]]];
And using this also
NSString *path = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"html"];
NSString *html = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
[self.webView loadHTMLString:html baseURL:[[NSBundle mainBundle] bundleURL]];
Edit:
I was overlooked that you have mention that loading file is working perfect.
I think issue is because of you load this string at runtime.
We all know that when we use html and css files we need to add these files in "Copy Bundle Resources". So that it will be available when html page load at runtime.
So may be issue here is some of the functions in that html string are use some file or assistance before it loads. So that's why runtime html creation and loading is not working.
How ever more of clear me if i'm misleading.
You can set runtime values in html file though.
Exmaple.html
<!DOCTYPE html>
<html>
<head>
</head>
<body>
#latitude#
#longitude#
</body>
<html>
See above file, You can add marker like #latitude#
and #longitude#
in that file. And replace this at a runtime. Like below code.
NSString *path = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"html"];
NSString *html = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
html = [html stringByReplacingOccurrencesOfString:@"#latitude#" withString:<LATITUDE-VALUE>];
html = [html stringByReplacingOccurrencesOfString:@"#longitude#" withString:<LONGITUDE-VALUE>];