Difference between the UIWebView methods loadHTMLString: and loadRequest

10,786

To solve this issue you have to use loadData:MIMEType:textEncodingName:baseURL: instead.

NSData *data = [html dataUsingEncoding:NSUTF8StringEncoding];
[webView loadData:data MIMEType:@"application/xhtml+xml" textEncodingName:@"utf-8" baseURL:baseUrl];
Share:
10,786

Related videos on Youtube

Ron
Author by

Ron

Updated on June 04, 2022

Comments

  • Ron
    Ron almost 2 years

    I have a UIWebView and I want to load an SVG image into it. The contents of the file is pure SVG i.e. <svg>...</svg>. The file loads fine into normal and Mobile Safari, and also in a UIWebView using loadRequest: by doing the following:

    url = [NSURL fileURLWithPath:path];
    NSURLRequest *req = [NSURLRequest requestWithURL:url];
    [webView loadRequest:req];
    

    However, if I load the contents of the file into a string, and try to load the HTML string into the webview, nothing displays:

    html = [NSString stringWithContentsOfFile:path
                                    encoding:NSASCIIStringEncoding
                                       error:nil];
    [webView loadHTMLString:html baseURL:nil];
    

    Is there any reason between the above two techniques? Should they not give the same results? The file is pure ASCII, so I don't think there is an encoding issue.

    I guess I can get what I need done right now by using a file, but I hate to use the filesystem for non persistent data.

    Any help is greatly appreciated!!!

    Thanks, Ron

  • Ron
    Ron about 13 years
    Thanks for the information! In my case, however, I don't think that is what is causing the problem since the HTML is completely self contained.
  • Ron
    Ron about 13 years
    This worked perfect. Thank you so much for the help! It is greatly appreciated!!!
  • Larry
    Larry over 10 years
    I used MIMEType "text/html" since xhtml+xml is strict and will cause rendering errors if the html isn't perfect (i.e. all tags must be closed properly, etc)

Related