initWithContentsOfURL行为

时间:2012-09-27 03:00:13

标签: objective-c ios

在我的代码中,我在UIWebview中加载了一个URL(一个aspx文件)。它加载并显示正常。

[webView loadRequest:requestObject];

我想检查iPhone上加载的HTML内容。当我使用以下代码在UIWebview中显示它时,UIWebview显示格式被破坏,以自动换行格式显示行和表。

NSString *htmlContent = [[NSString alloc] initWithContentsOfURL:inputUrl encoding:NSUTF8StringEncoding  error:&error];

[webView loadHTMLString:htmlContent baseURL:nil];

如果使用loadRequest打开文件而不是上面的loadHTMLString,会导致差异的原因是什么?

2 个答案:

答案 0 :(得分:1)

对loadHTMLString的调用不知道用什么URL来解析HTML中包含的任何相对URL。这应该在baseURL中传递。

答案 1 :(得分:0)

以下是可能感兴趣的人的代码:

    NSString* userAgent = @"Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3"; // user agent for iPhone browser
    NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:inputUrl]; // ARC enabled
    [request setValue:userAgent forHTTPHeaderField:@"User-Agent"]; //setting user agent
    NSURLResponse* response = nil;
    NSError* error = nil;
    NSData* data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; // ARC enabled
    NSURL *base = [NSURL URLWithString:@"http://mainwebsitehere"];
    [webView loadHTMLString:str baseURL:base];