2012-09-27 37 views
1

在我的代碼中,我在UIWebview中加載一個URL(一個aspx文件)。它加載並顯示正常。initWithContentsOfURL行爲

[webView loadRequest:requestObject]; 

我想檢查在iPhone上加載的HTML內容。當我使用以下代碼將其顯示在UIWebview中時,UIWebview顯示格式被打破,以換行格式顯示行和表格。

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

[webView loadHTMLString:htmlContent baseURL:nil]; 

當使用loadRequest和loadHTMLString打開文件時,會發生什麼情況會導致不同?

回答

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]; 
1

對loadHTMLString的調用不知道使用哪個URL來解析HTML中包含的任何相對URL。這應該在baseURL中傳遞。

+0

感謝您的答覆。我試過指定baseURL,但這沒有任何區別。我想知道這個問題與這個ASPX文件(由ASP Web服務器處理,並將HTML返回給客戶端)有關。 – kzia

+0

我也注意到,格式化中斷與當我沒有爲iPhone safari瀏覽器指定正確的「UserAgent」非常相似。就好像,Web服務器沒有處理正確的Web瀏覽器的htmlContent。 – kzia

+1

你可以嘗試使用NSMutableURLRequest設置一個useragent,這裏有一個例子... http://stackoverflow.com/questions/1532206/changing-the-useragent-of-nsurlconnection – combinatorial

相關問題